早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于C++排序很简单的问题给出一组关键字(12,2,16,30,8,28,4,10,20,6,18),按从小到大顺序,给出一组关键字(12,2,16,30,8,28,4,10,20,6,18),按从小到大顺序,(1)写出其进行希尔排序(排序的间隔增量为5)的结果;

题目详情
关于C++排序很简单的问题
给出一组关键字(12,2,16,30,8,28,4,10,20,6,18),按从小到大顺序,
给出一组关键字(12,2,16,30,8,28,4,10,20,6,18),按从小到大顺序,
(1)写出其进行希尔排序(排序的间隔增量为5)的结果;(麻烦给出详细点的过程啊)
▼优质解答
答案和解析
希尔排序是把关键字按增量分为多组,对每组使用插入排序,然后把增量减小,重复些过程,到增量为1时使用插入排序就将关键字排好序了.
第一个增量为5的情况下,给出的关键字可分组如下:
12,2,16,30,8
28,4,10,20,6
18
希尔排序的组指的是上面这个数阵中的各列.如12,28,18为一组,2,4为另一组.
分好组后对各组进行简单插入排序,结果为:
12,2,10,20,6
18,4,16,30,8
28
按行读取就是第一次排序的结果:12,2,10,20,6,18,4,16,30,8,28.
这就是楼主要的结果.
如果要继续排完的话,需要减小增量.
假设增量减为3,则把第一次的结果按3进行分组重复上述过程.然后再把增量减小到1,进行直接插入排序就OK了.
看了 关于C++排序很简单的问题给...的网友还看了以下:

Vb6数组筛选Text1里面的数组为4码数组由字母和数字组合以空格符号分开例如:12341ABC2  2020-04-06 …

乒乓球比赛有14名选手参加.比赛时先分成两组,每组7人,各组进行单循环赛(每2人都要赛1场),然后  2020-06-17 …

概率计算有12个有比赛,分成6组,每组2人进行比赛,比赛有胜,平,输三种结果,问6组会得出多少种排  2020-06-19 …

有13个队参加篮球赛,比赛分为两个组,第一组7个队,第二组6个队,各组先进行单循环赛(即每队都要与  2020-06-28 …

我市举行小学生乒乓球比赛,比赛前先把参赛的13个运动员分成2个组,第一组7人,第二组6人,比赛开始  2020-06-28 …

兴趣小组举办跳棋比赛,一共有12名同学参加,第一轮分6组进行单循环淘汰赛,第二轮剩下的6名同学之间  2020-07-03 …

一道初一的频数与频率的题目,以为很简单,上课没听进去,最好要有详细过程和原因,题目如下方:有40个  2020-07-30 …

某班男生分成甲、乙两组进行引体向上的专项训练,已知甲组有6名男生,并对两组男生训练前,后引体向上的个  2020-11-14 …

某兴趣小组由4男2女共6名同学.(1)从6人中任意选取3人参加比赛,求所选3人中至少有1名女同学的概  2021-01-02 …

求一条数学题24人分成6组每组5人怎么分?很有趣的数学题哦```喜欢数学的人试试做吧`~答案用圆圈表  2021-01-08 …