标签:
注意理解分治和递归思想,选出一个基数(挖一个坑),从右往左找比基数小的进行交换,再从左往右找比基数大的进行交换。
java:
public static void adjustArray(Integer[] arr, int l, int r) { if (l < r) { int i = l, j = r; int k = arr[l]; while (i < j) { while (i < j && k < arr[j]) { j--; } arr[i] = arr[j]; while (i < j && k > arr[i]) { i++; } arr[j] = arr[i]; } arr[i] = k; adjustArray(arr, l, i - 1); adjustArray(arr, i + 1, r); } }
参考:
标签:
原文地址:http://my.oschina.net/cjun/blog/519036