对于一组数据:
{ 8, 9, 1, 7, 2, 3, 5, 4, 6, 0 }
一共10个数据,第一次分为五组
8 3
9 5
1 4
7 6
2 0
交换法和移位法第一次循环中结果一样:
3 8
5 9
1 4
6 7
0 2
第一次循环结果为
3 5 1 6 0 8 9 4 7 2
第二次分为两组
3 1 0 9 7
5 6 8 4 2
交换法:
要一个一个换过去,比如第二组 5 6 8 4 2
要把2换到第一个位置 需要 2 与 4 交换 再与 8 交换 再与 6 交换 再与 5 交换
移位法:
依旧以第二组为例 5 6 8 4 2
采用插入方式 直接将 2 插入到 5 前面
节省了很多时间
第二次循环结果为
0 2 1 4 3 5 7 6 9 8
同样第三次,分为一组
交换法:
将2 1交换 后面依次交换
移位法:
将1插入到2前面
二者效率差不多
第三次循环结果为
0 1 2 3 4 5 6 7 8 9
因此,当数据量庞大时,可以明显看出移位法用时比交换法用时短;