/**
* 臭皮匠排序
*
* @param a
*
*/
public static void stoogeSort(int[] a) {
stoogeSortA(a, 0, a.length - 1);
}
private static void stoogeSortA(int[] a, int i, int j) {
if (a[i] > a[j]) {
swap(a, i, j);
}
if (j - i + 1 >= 3) {
int t = (j - i + 1) / 3; // 求1/3
stoogeSortA(a, i, j - t); // 前2/3
stoogeSortA(a, i + t, j); // 后2/3
stoogeSortA(a, i, j - t); // 再次前2/3
}
}
臭皮匠排序
最新推荐文章于 2024-08-12 14:42:13 发布