算法导论
万里长风破浪
这个作者很懒,什么都没留下…
展开
-
合并排序
合并排序合并排序通过把一个数组不断地分解成一个一个更小的数组,最终得到一个长度为1的数组,对同级的长度为1的数组进行合并,得到一个排好序的长度为2的小数组,然后与其同级的另外一个长度为2的数组进行合并,以此类推,最终得到一个排好序的数组,其源代码如下void Sort::mergeSortDescend(int l, int r){ //if l< r, the arr...原创 2018-09-04 22:28:54 · 1187 阅读 · 0 评论 -
希尔排序
希尔排序也叫做缩小增量排序(diminishing increment sort), 它的核心思想即利用插入排序在序列已经排好序或者大部分有序的情况下有接近线性时间的时间复杂度,通过不断地缩小增量来使得这个序列在局部上是有序的,最后不断地通过插入排序把整个序列变成有序的。源代码如下//insertion sort sublistvoid Sort::shellInsert(int n, ...原创 2018-09-05 23:37:07 · 113 阅读 · 0 评论 -
插入排序算法
插入排序算法插入排序是最简单的一种排序算法,它的核心思想即在于首先得到一个已经排好序的序列,然后从这个排好的序列后面开始与前面序列的各个数字进行比较,升序排序情况下,如果这个数字比它大,那么就把这个数字放到后面去,如果前面的这个数字比它小,由于前面的数字都已经是排好了的序列,因此前面的数字必定都比这个数字小,所以此时循环就可以终止了,直接用break跳出,源代码如下void Sort:...原创 2018-09-03 21:03:35 · 107 阅读 · 0 评论