伪代码如下:
设待排序数组为a
while循环(排序完毕=0)
while循环(失败次数<m)
随机生成a,b
若(a<b)且(a[a]>a[b])
交换a,b
否则 若(a>b)且(a[a]<a[b])
交换a,b
否则 失败次数+=1
以上反复
以上反复
然后对数组进行检查,方法如下:
i从左至右,j从右至左检查。i检查时设置最大值max,下一个数据如果大于等于max,这个数据通过检查,将max设为这个数。若下一个数小于max,判定检查不通过,重新进行最外层循环。若到数组末尾仍通过检查,判定检查通过,排序完毕=1
请哪位大神帮忙算一下使平均速度最快的m