
数据结构与算法
为以后工作准备以及打基础
YByuanrensheng
这个作者很懒,什么都没留下…
展开
-
排序之归并排序
概念: 归并排序是基于归并操作的一种有效的,稳定的排序算法,是使用采用分治算法的典型应用。归并算法是有序的子序列合并为一个完全有序的序列,即:先把每个子序列有序,然后再把每个有序的子序列组合成一个完全有序的序列。把两个有序的表合并为一个有序的表的操作被称为:二路归并法。使用情形: 数组一共有n个元素,归并排序需要log(n)轮归并操作,每轮归并比较不超过n次,元素的移动都是n次。所以归并排序的时间复杂度为为o(nlog(n))。归并排序时需要和待排序记录个数相等的存储空间,所以空间复杂度为 O(n)。归并原创 2021-11-13 17:45:13 · 1241 阅读 · 0 评论 -
排序之希尔排序
排序之希尔排序概念: 希尔排序(ShellSort),插入排序排序的一种。是对直接插入排序的优化。希尔排序也叫缩进增量排序,因为DL.Shell1959年提出得名。它是通过比较一定间隔的元素,随着各趟比较的进行间隔元素逐渐减小,直至间隔的元素到位最后一趟位置。适用场景: 希尔排序(时间复杂度O(n(1.3-2)))的效率比直接插入排序要高,但是比不上快速排序(时间复杂度O(n(logn))),在中等数据规模时表现良好。在大规模数据时的选择不是最优。总之效率比时间复杂度为O(n2 )的排序算法效率高的太多原创 2021-11-12 09:47:02 · 179 阅读 · 0 评论 -
排序之插入排序
插入排序1.概念:插入排序,也叫直接插入排序。其核心思想是在将一个数据插入到一个已经排序好的数据中,从而得到一个新的,有序的新表。在数据量少的时候,这是一个不算的有序算法。其实现过程使用双循环,外循环对第一个元素之外的所有元素,内循环对当前元素前面的有序表进行插入位置查找,并进行移动。2.使用情形插入排序的平均时间复杂度为o(n2),空间复杂度为常数阶o(1),其具体的时间复杂度和数组的有序性也是有关联的。当数组有序时,是最优的情况,只需要比较N-1次(N为元素个数),时间复杂度为o(N)。最坏的情况原创 2021-11-11 16:48:25 · 3582 阅读 · 0 评论