Stooge排序
又叫臭皮匠排序。。。
在《算法导论》作为反例出现的漂亮但极其低效的排序算法。
基本思路是:只要数组长度大于3,先将头与尾排序,然后递归调用排序前三分之二,再递归调用排序后三分之二,最后再递归调用排序前三分之二。冗余计算不少啊。。其实简单来说就是在三个数排序的基础上拓展出来的,相当低效。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
private static void stoogeSortDo(int[] A, int low, int high){ if(A[low] > A[high]) swap(A, low, high); if(high-low+1 >= 3){ int split = (high-low+1) / 3; stoogeSortDo(A, low, high - split); stoogeSortDo(A, low + split, high); stoogeSortDo(A, low, high - split); } }