1、数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
2、数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
3、数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
4、数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
5、数据项是数据的不可分割的最小单位。
6、数据对象是性质相同的数据元素的集合,是数据的一个子集。
7、数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
8、数据元素相互之间的关系称为结构,根据数据元素之间关系的不同特性,通常分为四种基本结构:集合、线性结构、树形结构、图状结构或网状结构。
9、数据结构的形式定义为:数据结构是一个二元数组Data_Structure = (D, S)。
10、数据结构在计算机中的表示称为数据的物理结构,又称为存储结构。
11、数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
12、数据类型是一组值的集合和定义在这组值上的一组操作的总称。
13、抽象数据类型(Abstract Data Type)是指一个数据模型以及定义在该模型上的一组操作。
14、按照“值”的不同特性,高级程序语言中的数据结构类型可以分为原子类型和结构类型。
15、抽象数据类型可用三元组(D,S,P)表示,其中D是数据对象,S是D上的关系集,P是对D的基本操作集。
16、多形数据类型(polymorphic data type)是指其值的成分不确定的数据类型。
17、算法是对特定问题求解步骤的一种描述,它是指定的有限序列,其中每一条指令表示一个或多个操作,此外,一个算法还具有5个重要特性:有穷性、确定性、可执行性、输入、输出。
18、算法设计的要求:正确性、可读性、健壮性、效率与低存储量要求。
19、C语言实现起泡排序算法:
void bubble_sort(int a[], int n) { //将a中整数序列重新排列成自小至大有序的整数序列 int i, j, change, tmp; for (i = n-1, chang = 1; i>= 1 && change; --i) { change = 0; for (j = 0; j<i; ++j) { if (a[j]>a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; change = 1; } } } }
“交换序列中相邻两个整数”为基本操作,当a中初始序列为自小至大有序,基本操作的执行次数为0;当初始序列为自大至小有序时,基本操作的执行次数为n(n-1)/2,属于最坏情况。我们通常将最坏情况下的时间复杂度作为该算法的时间复杂度,所以起泡排序的时间复杂度为T(n) = O(n²)。
20、我们可以把事前估算和事后统计两种办法结合起来使用。以两个矩阵乘法为例,若上机运行两个10X10的矩阵相乘,执行时间为12ms,则又算法的时间复杂度T(n) = O(n³)可估算两个27X27的矩阵相乘所需时间大致为(27/10)³*12ms ≈ 236ms。
除非注明,文章均为CppLive 编程在线原创,转载请注明出处,谢谢。