希尔排序和归并排序

希尔排序

基本思想

在要排序的一组数中,设置一个增量(第一次设置为数的个数的一半),将每一个数与这个数往后移动增量次进行比较如果这个数大于(升序)这个数往后移动增量次的数就进行交换,知道这个数往后移动增量次为最后一个数就结束,然后这个增量减一再进行循环直到增量为0。

时间复杂度

O(n^2)

空间复杂度

O(1)

代码实现

希尔排序和归并排序

归并排序

基本思想

归并排序是将两个有序数列合并成一个有序数列:从第一个数开始将两个数列进行比较,将小的那个数取出放入第三个数列中,然后小的那个数列往后移动再进行比较,直到其中有一个数列中没有数可比较,将另一个数列中的数全部放入第三个数列中,这样就排序好了。

时间复杂度

O(n*logn)

空间复杂度

O(n)

代码实现

希尔排序和归并排序
希尔排序和归并排序