您的位置:首页 > 其它

简洁的快速排序

2017-09-07 17:08 190 查看
提供一个比较简介的快排代码

import java.util.Random;
public class QuickSort {
//递归
static void quicksort(int n[], int left , int right) {
int dp ;
if (left < right) {
dp = partition(n, left, right);
quicksort(n, left, dp - 1);
quicksort(n, dp + 1, right);
}

}

//一趟一排序
static int partition(int n[], int left, int right ) {
int pivot = n[left];
while (left < right) {
while (left < right && n[ right] >= pivot )
right--;
if (left < right)
n[ left++] = n [right ];
while (left < right && n[ left] <= pivot )
left++;
if (left < right)
n[ right--] = n [left ];
}
n[ left] = pivot ;
return left ;
}

//测试
public static void main(String [] args ) {
// TODO Auto-generated method stub
Random random = new Random();
int[] a = new int[100000];
for(int i =0; i<100000; i++){
a[ i] = random.nextInt(1000000);
}
//int a[] = {1,3,2,6,4,5,2,3,8,9,5,6,4,3};
quicksort(a,0,a.length-1);

for(int x : a){
System. out.println(x + "  ");
}

}

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