【数据结构】知识点总复习 |
您所在的位置:网站首页 › 数据结构c语言版与java版的区别 › 【数据结构】知识点总复习 |
第一章 绪论
本章重点:数据结构相关名词术语的含义。难点:时间复杂度的估算。 数据:是客观事物的符号表示。能被输入到计算机中被程序处理的符号的总称。 数据元素:也称顶点,结点或记录。数据的基本单位。 数据项:最小单位。 以上不知道怎么背,随便过过吧。 逻辑结构=数据元素+关系。 四类基本结构: 线性结构:一对一,如线性表,栈和队列,字符串,数组,广义表树结构:一对多图/网状结构:多对多集合结构。后三个是非线性结构。(即四类中除了线性结构的) 两种存储结构:顺序存储(数组),链式存储(结构体和指针)。 差别: 顺序存储:相邻位置表示元素逻辑关系。 链式存储:指针信息表示元素逻辑关系。 算法: 五特性:有穷,确定,可行,输入,输出。 优劣标准:正确性,可读性,健壮性,高效性。 时间复杂度:一般是最深层循环内的语句频度。 两个没什么用的表:(?) 重难点:顺序表和链表。 概念:非空的线性表或线性结构是一个有限数据元素的有序集合。 特点:存在唯一一个第一个,最后一个数据元素;每个数据元素只有一个前驱(除第一个)和后继(除最后一个)。 存储:连续地址。是随机存储结构。 线性表 线性表的一些操作: GetElem: i是位置。注意特判范围。第1个存在0号位,故取值要i-1; if(i=L.length) return ERROR; e=L.elem[i-1];LocateElem:存在就返回位序,不存在就返回0; 地址从0开始,位序从1开始。故return i+1; for(int i=0;i for(int i=1;i a[0]=e; for(int i=length;a[i]!=e;i--){} return i; }时间复杂度O(n); 平均查找长度:(n+1)/2; 折半查找 就是二分。线性表要有序且有限。 跳出循环的条件是:找到了(a[mid]==e)或范围缩小到0也没找到.故循环条件是while**(l //j和j+1的比较 } 特点: 稳定,可用于链式,移动次数多。 第一趟确定最大的,第二趟确定第二大的…以此类推,大泡泡会沉底 快速排序 交换类。 动图来自:这里:以下动图均来自这里 快排时间复杂度O(nlog2n) 空间复杂度:最好O(log2n),最坏O(n) 不稳定。要用在顺序结构。适合记录无序,n较大的情况。 简单选择排序 选择类,即选出一个关键字最大/小的记录,并移到法定位置。 例子: 这里选的是无序中最小的放入有序中。 堆排序 动图: 归并排序 将两个或以上有序子序列归并为一个有序序列。 排序的综合比较 选择何种排序方式考虑原则: 待排记录个数n记录本身大小关键字分布情况稳定性要求红框框要考。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |