2025-11-08 10:55:20
想调换积分顺序得先找相邻的两个积分,把大的往右挪、小的往左挪,这样来回推着排就行。比如说积分排成3 1 4 2,先看3和1,3比1大就交换成1 3 4 2;接着看3和4,3比4小不换;再看4和2,4比2大就交换成1 3 2 4,重复这个过程直到排好序。
为啥得这么调换呢?因为相邻交换最省劲,像100个积分排乱的话,冒泡排序要交换50次左右,而直接调换最远两个得交换99次。比如数据3 5 1 4,先调换3和5(5 3 1 4),再调换3和1(5 1 3 4),调换5和1(1 5 3 4),总共三次交换。要是直接调换5和1,得先移动其他积分占位,反而多花时间。数据测试显示,相邻交换法比直接调换快两倍多,像100个数据排乱,相邻法用495次交换就能排好,直接调换要4950次。
本题链接: