package com.ceshi.aa;
//目前无法运行,求指教
public class QuickSort {
/**
* 快速排序法
* @param args
*
*/
/* 1.将一组数组传入方法,设left=起始0;right=末尾,a.length-1;
* 2.if(left<right)向下执行
* 3.一般设第一个数为枢轴值k
* 4. 设置循环:while(a[right]>=k)right--;
* 5.跳出循环后使用swap(数组,right,left)互换值;
* 6.7:同4、5:while(a[left]<=k)left++;退出循环值互换;
* 8.return left;
* */
public static int QuickSort(int[] a,int left,int right){
int key=a[0];
while(a[right]>=key)right--;
int temp=a[right];
a[right]=a[left];
a[left]=temp;
while(a[left]<=key)left++;
temp=a[right];
a[right]=a[left];
a[left]=temp;
return left;
}
/**
* 递归控制快速排序
* int point:枢轴值
* 通过枢轴值往下带入,递归排列出有问题的数组,
*/
public static void Quick(int[] a,int left,int right){
if(left<right){
int point;
point=QuickSort(a,left,right);
Quick(a,left,point-1);
Quick(a,point+1,right);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int pass[]={0,3,4,6,8,1,2,1,5,6,7,889,3,6,6};
Quick(pass,0,pass.length);
for (int i = 0; i < pass.length; i++) {
System.out.println(pass);
}
}
}
|
|