java实现快速排序
public static int quickSort(int[] arr,int i,int j) { //确定一个基准数,快速排序 int baseNum=arr[i]; //从左向右寻找索引 int left=i; //从右向左寻找索引 int right=j; while (left<right) { //先从右向左扫描 while (arr[right]>=baseNum&&right>left) { right--; } //从左向右 while (arr[left]<=baseNum&&left<right) { left++; } //两个方向是否相遇 if (left==right) { //将基准数与当前值交换 int temp=arr[left]; arr[left]=baseNum; arr[i]=temp; } //交换数据 int swap=arr[left]; arr[left]=arr[right]; arr[right]=swap; } return right; } public static int[] Sort(int[] arr,int i,int j) { if (i>=j) { return arr; } int middposition=quickSort(arr,i,j); Sort(arr,i,middposition-1); Sort(arr, middposition+1, j); return arr; }
调用:
int[] arr= {6, 1, 2 ,7 ,9 ,3 ,4 ,5, 10 ,8};
int[] sortArr=Sort(arr,0,arr.length-1);