您的位置:首页 > 编程语言 > Java开发

java语言递归实现快速排序

2017-10-15 20:19 411 查看
基本思想

通过一趟排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另一部分的所有数据都小。

public class QuickSort {
//分割函数
public static int partitionByPivotValue(int[] arr,int left,int right){
int pivotValue=arr[left];
while(left<right){
while(left<right && arr[right]>= pivotValue){
--right;
}
arr[left]=arr[right];

while(left<right && arr[left]<= pivotValue){
++left;
}
arr[right]=arr[left];

arr[left]=pivotValue;
}
return left;
}
public static void quickSort(int[] arr,int left,int right) {
int pivot;
if(left<right){
pivot=partitionByPivotValue(arr, left, right);
quickSort(arr, left, pivot-1);
quickSort(arr, pivot+1, right);
}
}

public static void main(String[] args) {
int []arr={ 38, 65, 97, 76, 13, 27,49 };
quickSort(arr, 0, arr.length-1);
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+"  ");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: