关于插入排序,希尔排序的哨兵问题

2021-02-17 08:16:54 字数 1362 阅读 2482

1楼:乌石

1.你的想法bai

没问题,书中的处理du也没问题,zhi只不过呢,因为先前已有了一dao

次比较,

回为了让这次比答较的信息不浪费,所以做此处理,如果你让j=i-1开始,就多做了一次比较吧。

2.为什么不能用哨兵,是因为希尔排序在一趟排序中插入排序是发生在间隔为d的子序列里,所以不能用哨兵。也就是说向前寻找插入位置时,不一定能遇到r【0】停下来。

比较直接插入排序,简单选择排序,快速排序,堆排序,归并排序,希尔排序和基数排序的时空性能稳定性和情

2楼:宝石鲨鱼

堆排序 n*logn 时间在这里比较优 不过稳定性差快排 o(nlogn),最坏情况为o(n^2)。在实际应用中,快速排序的平均时间复杂度为o(nlogn)。

比较均衡

直接插入排序,简单选择排序 n^2

希尔排序和基数排序 不太了解

空间的话 个人认为是一样的 因为你要用同样的数组去存 只是存的顺序不同罢了

时间的话 100w以内 快排 最优 100w以上 堆排的优越性就明显出来了

所以一般快排就可以满足

希尔排序问题

3楼:啦啊加啦

小增量排序”(来diminishing increment sort),是直接插源

4楼:匿名用户

希尔排序,在比较出次序问题后,会将指针处值与隔两个步长处的数值继续比较,知道减或者加步长后数组处值不存在为止,通过计算时间复杂度能准确反应每个排序方法的过程。

5楼:寺内莉珂

while (data[0] data[j - d]&&j-d>1)这个j-d>1应该为j-d>=1吧

直接插入排序、二分法插入排序、希尔排序、直接选择排序、堆排序、交换排序、快速排序英文怎么说?

6楼:听不清啊

直接插入排序:straight insertion sort二分法插入排序: binary sort

希尔排序:shell sort

直接选择排序:straight select sort堆排序:heap sort

交换排序:swap sort

快速排序:quick sort

基数排序:radix sort

归并排序:merge sort

7楼:匿名用户

straightinsertion、binarysort、shellsort、******selectionsort、

quicksort

数据结构关于希尔排序的一道填空题

1楼 匿名用户 希尔排序基本思想每趟都按照确定的间隔将元素分组,在每一组中进行直接插入排序,使得小的元素可以跳跃式前进,逐步将步长缩小,使得步长为1 第一趟步长为4就是每间隔4个空分一组 ,并对每一组内部进行直接插入排序 答案 3趟 第一趟后 10 7, 9 0 47 23 1 8 98 36 2楼...

“二分法插入排序快速排序归并排序”和“堆排序”的

1楼 carry 小小 二分法插入排序 复杂度 o nlogn 快速排序 o nlogn 有可能退化归并排序 o nlogn 比较快 堆排序 o nlogn 最稳定的 在快速排序 堆排序 归并排序中,什么排序是稳定的? 2楼 沉珂侧畔 归并排序是稳定的 快速排序和堆排序都不稳定 不稳定 就是大小相同...

古代大家族长幼排序规则,关于古代长幼排序的问题 15

1楼 匿名用户 不管多少孩子,分不分家,辈分都是一样,他们爷爷辈的的孙子都是一辈的,不管出生早还是出生晚,分了辈分也不会变 关于古代长幼排序的问题 15 2楼 匿名用户 如果一个人有4个以上的兄弟,那么除了 伯 之外,其他的几个可以重复兄弟排行的次序,长兄为伯,次为仲,又次为叔,最幼为季。若兄弟三人...