package sort;
import java.util.Random;
/**
* 快速排序 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小,
* 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。
* @author e421083458
*
*/
public class QuickSort{
public static void main(String args[]){
Random ran = new Random();
int[] sort = new int[10];
for(int i=0;i<sort.length;i++){
sort[i] = ran.nextInt(50);
}
System.out.println("排序前的数组为:");
for(int data:sort){
System.out.print(data+" ");
}
System.out.println();
quickSort(sort,0,sort.length-1);
System.out.print("排序后的数组为:");
for(int data:sort){
System.out.print(data+" ");
}
}
public static void quickSort(int[] sortArray,int low,int hight){
int start = low;
int end = hight;
if(low<hight)
{
//把第零个位置看做中轴
int key = sortArray[low];
while(low<hight)
{
while(low<hight && sortArray[hight]>=key)
hight--;
sortArray[low] = sortArray[hight];
while(low<hight && sortArray[low]<=key)
low++;
sortArray[hight] = sortArray[low];
}
sortArray[low] = key;
int result = low;
quickSort(sortArray,start,result-1);
quickSort(sortArray,result+1,end);
}
}
}
java 快速排序
最新推荐文章于 2024-07-17 10:35:12 发布