
数据结构
文章平均质量分 72
编码小生
这个作者很懒,什么都没留下…
展开
-
【数据结构】精简知识总结
数据结构 知识点详解原创 2022-11-02 21:45:24 · 1644 阅读 · 1 评论 -
【数据结构】树——二叉树
二叉树原创 2022-10-21 10:31:00 · 1480 阅读 · 0 评论 -
【数据结构】递归和迭代
递归和迭代原创 2022-10-20 23:00:03 · 345 阅读 · 0 评论 -
【数据结构】查找算法
查找:在数据集合中寻找满足某种条件的数据元素的过程称为查找。查找表:用于查找的数据集合称为查找表,它由同一类型的数据元素组成,可以是一个数组或链表等数据类型。从名义上来看,查找表是一种新的数据结构,但实际上它指的就是用线性表,树或者图结构来存储数据,只不过数据间的逻辑关系是人为赋予的。数据结构中,将存储无逻辑关系数据的线性表,树或者图结构统称为查找表。查找表常见操作:如果只对查找表做前俩种操作,不改变查找表的存储结构,这样的查找表称为静态查找表;反之,如果对查找表做插入或者删除操作,查找表的结构发生了变化原创 2022-09-03 21:45:08 · 6260 阅读 · 1 评论 -
【数据结构】排序----选择排序
选择排序的基本思想:每一趟(如第i趟)在后面n-i+1个待排序元素中选取关键字最小的元素,作为有序子序列的第i个元素,直到第n-1趟做完,待排序元素只剩下1个,就不用再选了。基本思想:在待排序的数据中选出最大(小)的元素放在最终的位置。基本操作:简单选择排序算法的性能分析:空间效率:仅使用常数个辅助单元,故空间效率为O(1)时间效率:从上述代码中可得,在简单选择排序的过程中,元素移动的操作次数很少,不会超过3(n-1)次,最好的情况是0次,此时对应的表已经有序,但元素间比较的次数与序列的初始状态无关原创 2022-06-11 21:39:23 · 456 阅读 · 0 评论 -
【数据结构】排序---交换排序
所谓交换,是根据序列中的俩个元素关键字的比较结果来对换这俩个记录在序列中的位置。主要是冒泡排序和快速排序。排序的基本思想:从后往前(或从前往后)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),直到序列比较完,我们称它完成了第一次冒泡,结果是将最小的元素交换到待排序列的第一个位置(或将最大的元素交换到待排序列的最后一个位置),关键字最小元素如气泡一般逐渐往上漂浮直至水面,下一趟冒泡时,前一趟确定的最小元素不再参与比较,每趟冒泡的结果是把序列中最小的元素(或最大的元素)放到了最终位置,这样最多做n-原创 2022-06-08 17:49:28 · 556 阅读 · 0 评论 -
【数据结构】排序----归并排序和基数排序
归并:把俩个或者多个有序的序列合并成一个。m路归并,每选出一个元素需要对比关键字m-1次代码实现:2路归并排序算法的性能分析操作如下:空间效率:Merge()操作中,辅助空间刚好为n个单元,所以算法的空间复杂度为O(n)。时间效率:每趟归并的时间复杂度为O(n),共需进行log2n趟归并,所以算法的时间复杂度为O(nlog2n)。稳定性:由于merge()操作不会改变相同关键字记录的相对次序,所以2路归并排序算法是一种稳定的算法。一般而言,对N个元素进行k路归并排序时没排序的趟数m满足K^m=原创 2022-06-12 11:59:03 · 186 阅读 · 0 评论 -
【数据结构】各种内部排序算法的比较及应用
一般基于三个因素进行对比:时空复杂度,算法的稳定性,算法的过程特征。从时间复杂度来看:简单选择排序,直接插入排序和冒泡排序平均情况下的时间复杂度都为O(n^2),且实现过程也比较简单,但直接插入排序和冒泡排序最好情况下的时间复杂度可以达到O(n),而简单选择排序则与序列的初始状态无关。希尔排序作为插入排序的拓展,对较大规模的排序都可以达到很高的效率,但目前未得出其精确的渐进时间。堆排序利用了一种称为堆的数据结构,可以在线性时间内完成建堆,且在O(nlog2n)内完成排序过程。快速排序基于分治的思想,原创 2022-06-13 18:04:55 · 889 阅读 · 0 评论 -
【数据结构】排序---基本概念
排序就是重新排列列表中的元素,是列表中的元素满足关键字有序的过程。排序算法的稳定性是指经过排序后,能使关键字相同的元素保持原顺序的相对位置不变。算法是否具有稳定性不能衡量一个算法的优劣,它主要是对算法的性质进行描述。在排序过程中,根据数据元素是否完全在内存中,可将排序分为俩类,内部排序和外部排序。内部排序是指排序期间所有元素全部存放在内存中的排序。外部排序是指排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断的在内,外存之间移动的排序。一般情况下,内部排序算法,在执行的过程中都要进原创 2022-06-07 20:13:46 · 285 阅读 · 0 评论 -
【数据结构】排序---插入排序
插入排序基本思想:每次将一个待排序的记录按其关键字大小插入前面已经排好序的子序列,直到全部记录插入完成。三个重要的排序算法:直接插入排序,折半插入排序,希尔排序其中L()表示元素 L[]表示表将元素L[i]插入已有序的子序列L[1…i-1],需要执行以下操作:直接排序有哨兵:假定初始序列为49 ,38,65,97,76,13,27,49* ,初始时49可以视为一个已排好序的子序列。直接插入排序示例直接插入排序算法的性能分析:空间效率:仅使用了常数个辅助单元,因而空间复杂度为O(1)时间效率:在排原创 2022-06-08 12:28:31 · 350 阅读 · 0 评论 -
【数据结构】排序---冒泡排序
冒泡排序的基本思想:从下往上两两比较相邻元素的值,如果为逆序(即a[j-1]>a[j]),则交换,直到序列比较完。如果有n个元素需要比较n-1次,每轮减少一次比较性能分析:1.空间效率:仅使用了常数个辅助单元,因而空间复杂度为O(1)2.时间效率:当初始序列有序时,显然第一趟冒泡后flag依然为false(本趟冒泡没有元素交换),从而直接跳出循环,比较次数为n-1,移动次数为0,从而最好情况下的时间复杂度为O(n);当初始序列为逆序时,需要进行n-1趟排序,第i趟排序要进行n-i次关键字的比较,而且每原创 2022-06-04 22:13:16 · 267 阅读 · 0 评论 -
【数据结构】字符串---模式匹配
字符串匹配算法详解,BF,KMP算法原创 2022-07-22 14:03:02 · 3596 阅读 · 0 评论