您的位置:首页 > 其它

排序之 --- 快速排序

2017-01-11 10:28 441 查看
/**
* 快速排序
* @author admin
*
*/
public class Sort {

/**
* 快速排序
* @param arr
* @param left
* @param right
*/
public static void quictSort(int[] arr, int left, int right){
int dp;
if(left < right){
dp = partition(arr, left, right);
quictSort(arr, left, dp - 1);
quictSort(arr, dp + 1, right);
}
}

/**
* 获取区分位置
* @param arr
* @param left
* @param right
* @return
*/
public static int partition(int[] arr, int left, int right){
int pivot = arr[left];
while (left < right) {
while (left < right && arr[right] >= pivot)
right--;
if (left < right)
arr[left++] = arr[right];
while (left < right && arr[left] <= pivot)
left++;
if (left < right)
arr[right--] = arr[left];
}
arr[left] = pivot;
return left;
}

public static void main(String[] args) {
int[] array = {49,38,65,97,76,13,27,49};
quictSort(array, 0, array.length - 1);
System.out.println("排序结果 -------" + Arrays.toString(array));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: