您的位置:首页 > 其它

【基础排序】— 快速排序

2012-04-22 13:08 183 查看
一些大学学过的基础在这里总结一下

package base.sort;

import java.util.Arrays;
import java.util.Random;
//O(nlogn) 快速排序
public class QuickSort {

public static void main(String[] args) {

QuickSort sort = new QuickSort();
int[] a = new int[32];
Random rand = new Random();
for (int i = 0; i < a.length; i++) {
a[i] = (int) (rand.nextLong()%100);
}
System.out.println("start Array: " + Arrays.toString(a));
sort.sort(a,0,a.length);
System.out.println("result Array: " + Arrays.toString(a));
}

public void sort(int[] a,int m,int n){

if(m != n){
int i = partition(a,m,n);
sort(a,m,i);
sort(a,i+1,n);
}
}

public int partition(int[] a,int m,int n){

int x = a[m];
int i = m;

for(int j=i+1;j<n;j++){
if(a[j]<=x){
i = i+1;
exchange(a,i,j);
}
}
exchange(a,m,i);
return i;
}

public void exchange(int[] a,int i,int j){
int temp = 0;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: