算法看多了也脑袋疼,这不,奇偶算法,这名字怪怪的,也不知道哪位大神想出来的这个算法
看名字大概也知道,排序跟奇偶位数有关,嗯,你猜到了重点
奇偶排序是这样的,先奇数位和它右侧的数据进行排序,然后偶数位和它右侧的数据进行排序,从而得到最终结果
我们来举个例子,有数组[10, 12, 7, 5]
先选偶位还是先选奇位,看你的代码了
①我们选择偶数位 10 7
10和它右边的12比,嗯,是顺序的,所以保持不变
7和它右边的5比,7比5大,互换顺序,结果为[10, 12, 5, 7]
②我们选择奇数位 12 7
12和它右边的5比,12比5大,互换顺序,结果为[10, 5, 12, 7]
因为7右边没有数据,不进行比较排序
③我们选择偶数位 10 12
10和它右边的5比,10比5大,互换顺序,结果是[5, 10, 12, 7]
12和它右边的7比,12比7大,互换顺序,结果是[5, 10, 7, 12]
④我们选择奇数位 10 12
10和它右边的7比,10比7大,互换顺序,结果是[5, 7, 10, 12]
因为12右边没有数据,不进行比较排序
⑤我们选择偶数位 5 10
………………
…………
……
直至每个都确认一遍之后,之后结果为
[5, 7, 10, 12]
(排序次数和结果如下
[10, 12, 7, 5]
[10, 12, 5, 7]
[10, 5, 12, 7]
[5, 10, 12, 7]
[5, 10, 7, 12]
[5, 7, 10, 12]
[5, 7, 10, 12]
[5, 7, 10, 12]
[5, 7, 10, 12])
我们再来看看代码实现
java代码实现奇偶排序
python代码实现奇偶排序
go代码实现奇偶排序