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

快速排序

2013-10-04 13:13 2001 查看
 * 设数组a中存放了n个数据元素,low 为数组的低端下标,high为数组的高端下标,从数组a中任取一个元素(这个元素通常取a[0])作为标准元素,
 * 一该标准元素来调整数组a中其他各个元素的位置,使排在标准元素前面的元素均小于标准元素,而排在标准元素后面均小于标准元素。
 * 这样一次排序过程后,一方面将标准元素放在了未来排好序的数组中该标准元素应该在的位置。

 * 另一方面将数组中的元素以标准元素为中心分成了两个子数组,位于标准元素左边的均小于标准元素,位于标准元素右边的均大于等于标准元素。

import java.util.Arrays;

public class QuickSort {

public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = {60,55,48,37,10,90,84,36,5,10};
quickSort(arr,0,arr.length-1);
System.out.println(Arrays.toString(arr));
}

private static int partition(int arr[],int low,int high){
int i,j,temp;
i = low;
j = high;
temp = arr[low];
while(i<j){
//扫描右端
while(i<j && temp<arr[j]) {
j--;
}
if(i<j){
arr[i] = arr[j];
i++;
}

//在数组的左端扫描
while(i<j && arr[i]<temp){
i++;
}
if(i<j){
arr[j] = arr[i];
j--;
}
}
arr[i] = temp;
return i;
}

public static void quickSort(int arr[],int low ,int high){
if(low<high){
int i = partition(arr, low, high);
quickSort(arr, low, i-1);
quickSort(arr, i+1, high);
}
}

}

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