在待处理的数据区间中,对相邻且数据个数相等的数据块进行处理。若数字i恰好在第i位置,则不做交换,否则按下列两种情况处理。
情况A.待处理区间中,若数字i之前的数据个数小于等于其余数据个数,做一次交换可将数字i换到第i位置,如数字i=2时:
情况B.待处理区间中,若数字i之前的数据个数大于其余数据个数,操作如下:
◆奇数个数据:先将待处理区间中第1个数据排除,对其余数据整体做数据块交换,再按情况A处理,如数字i=3时:
◆偶数个数据:先将待处理区间整体做数据块交换,再按情况A处理,如数字i=4时: