基本原理
选取一个数,把比它小的放在左边,比它大的放在右边,再对左右每个子数组做相同操作,直至操作元素个数为1.
算法改进
每一趟排序:
下标|0|1|2|3|4|5|6|7|8|9|说明|伪代码
-|-|-|-
|6|2|7|3|1|8|9|4|5|0|key = [0]6|
|0|2|7|3|1|8|9|4|5|6|从右侧找第一个小于key的[9]0,互换|for(;[j]>=key;j--)
|0|2|6|3|1|8|9|4|5|7|从左侧找第一个大于key的[2]7,互换|
|0|2|5|3|1|8|9|4|6|7|从右侧找第一个小于key的[8]5,互换|
|0|2|5|3|1|6|9|4|8|7|从左侧找第一个大于key的[5]8,互换|
|0|2|5|3|1|4|9|6|8|7|从右侧找第一个小于key的[7]4,互换|
|0|2|5|3|1|4|6|9|8|7|从左侧找第一个大于key的[6]9,互换|
每趟排序的