2. 写出使用增量序列{7,3,1} 对输入数据9, 8, 7, 6, 5, 4, 3, 2, 1进行Shell排序的过程
时间: 2023-09-27 22:12:05 浏览: 171
使用增量序列{7, 3, 1} 对输入数据9, 8, 7, 6, 5, 4, 3, 2, 1进行Shell排序的过程如下:
1. 首先,取增量为7,将待排序列分成7个子序列,分别为{9}, {8}, {7}, {6}, {5}, {4}, {3, 2, 1}。
2. 对每个子序列进行插入排序。对于{3, 2, 1}这个子序列,插入排序的过程如下:首先将3插入到前面已排好序的序列中,得到序列{3, 2, 1},然后将2插入到前面已排好序的序列中,得到序列{2, 3, 1},最后将1插入到前面已排好序的序列中,得到序列{1, 2, 3}。对其他子序列也进行相同的操作。
3. 接下来,取增量为3,将待排序列分成3个子序列,分别为{9, 6, 3}, {8, 5, 2}, {7, 4, 1}。
4. 对每个子序列进行插入排序。对于{7, 4, 1}这个子序列,插入排序的过程如下:首先将7插入到前面已排好序的序列中,得到序列{7, 4, 1},然后将4插入到前面已排好序的序列中,得到序列{4, 7, 1},最后将1插入到前面已排好序的序列中,得到序列{1, 4, 7}。对其他子序列也进行相同的操作。
5. 最后,取增量为1,对整个序列进行插入排序。插入排序的过程如下:首先将1插入到前面已排好序的序列中,得到序列{1, 4, 7, 2, 5, 8, 3, 6, 9},然后将4插入到前面已排好序的序列中,得到序列{1, 4, 7, 2, 5, 8, 3, 6, 9},依次将剩下的数字插入到前面已排好序的序列中,最终得到有序序列{1, 2, 3, 4, 5, 6, 7, 8, 9}。
因此,使用增量序列{7, 3, 1} 对输入数据9, 8, 7, 6, 5, 4, 3, 2, 1进行Shell排序的结果为{1, 2, 3, 4, 5, 6, 7, 8, 9}。
阅读全文