快速排序 希尔排序 都是什么意思

如题,请用自己的话说一下,看书没看明白那么复杂的描述!

希尔排序:

核心:选数列下标的一定增量为一组,组内排序。

步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P272 图10.5)
1.选增量为数组长度的一半(长度除2取不大于的整数),相隔该增量的元素为一组,组内排序;
2.增量不断减半(原增量除2取不大于的整数),相隔该增量的元素为一组,组内继续排序;
3.直到增量为1,所有元素成为一组,排序结束。

--------------------------------------------------
快速排序:

核心:将当前排列段首元素选为“枢轴”,从当前段两头开始比,比它大的置后,比它小的提前。

步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P275 图10.7)
1. 选首元为“枢轴”,末尾元素从后向前比较,有比“枢轴”小的和“枢轴”交换,然后换从起始元素向后比较,有比“枢轴”大的和“枢轴”交换,再依次换从末尾、从开头轮流比较直到比完。
2. 这时“枢轴”元素把原排列分成两段,如图(a)最后一行所示。
3. 对“枢轴”分开的前段和后段再分别作为独立的排列段,仿照步骤1,重复进行选当前段的首元为“枢轴”、从当前段两头开始比、比它大的置后、比它小的提前。
4. 每个排列段都只剩下一个元素时,结束排序。

自创个人通俗版,仅供楼主参考。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-04
希尔排序:

核心:选数列下标的一定增量为一组,组内排序。

步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P272 图10.5)
1.选增量为数组长度的一半(长度除2取不大于的整数),相隔该增量的元素为一组,组内排序;
2.增量不断减半(原增量除2取不大于的整数),相隔该增量的元素为一组,组内继续排序;
3.直到增量为1,所有元素成为一组,排序结束。

--------------------------------------------------
快速排序:

核心:将当前排列段首元素选为“枢轴”,从当前段两头开始比,比它大的置后,比它小的提前。

步骤解释:
(参考严蔚敏著《数据结构(C语言版)》P275 图10.7)
1. 选首元为“枢轴”,末尾元素从后向前比较,有比“枢轴”小的和“枢轴”交换,然后换从起始元素向后比较,有比“枢轴”大的和“枢轴”交换,再依次换从末尾、从开头轮流比较直到比完。
2. 这时“枢轴”元素把原排列分成两段,如图(a)最后一行所示。
3. 对“枢轴”分开的前段和后段再分别作为独立的排列段,仿照步骤1,重复进行选当前段的首元为“枢轴”、从当前段两头开始比、比它大的置后、比它小的提前。
4. 每个排列段都只剩下一个元素时,结束排序。

自创个人通俗版,仅供楼主参考!本回答被提问者采纳