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

java快速排序

2015-08-11 08:51 381 查看
public class QuickSort{

public static void main(String[] args) {
int[] arr = {5,6,6,4,9,5,5,5,2,7,8,1};
print(arr);
sort(arr, 0, arr.length - 1);
print(arr);
}
//打印方法
public static void print(int[] arr) {
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + " ");
}
System.out.println();
}

//排序方法
public static void sort(int[] arr, int low, int high){
if(low >= high)
return;
if((high-low) == 1){
if(arr[low] > arr[high])
swap(arr, low, high);
return;
}
int temp = arr[low];
int left = low + 1;
int right = high;
while(left < right) {
//从left位置开始向右找大于temp的值
while(left < right) {
if(arr[left] > temp)
break;
left++;
}
//从right开始向左找小于temp的值
while(left <= right) {
if(arr[right] <= temp)
break;
right--;
}
if(left < right){
swap(arr, left, right);
left++;
right--;
}
}
swap(arr, low, right);
sort(arr, low, right - 1);
sort(arr, right + 1, high);
}
//交换函数
public static void swap(int[] arr, int i, int j) {
int temp ;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: