快速排序 Java实现

来源:互联网 发布:织梦cms使用 编辑:程序博客网 时间:2024/05/21 10:58
   由于时间原因,快速排序的思想在这里就不讲了(不明白的请百度)。   下面直接上代码:public class QuickSort {        //找到分割数组的界点下标public int getMiddle(int[] array,int start,int end){int temp=array[start];while(start<end){//注意:条件始终包含start<endwhile(start<end && array[end]>=temp){end--;}array[start]=array[end];//注意:条件始终包含start<endwhile(start<end && array[start]<=temp){start++;}array[end]=array[start];}//这里别忘了赋值array[start]=temp;//返回分割点下标return start;}        //利用递归的思想,对数组Array进行快速排序private void _quickSort(int[] array, int start,int end){if(start<end){int middle=getMiddle(array, start, end);_quickSort(array, start, middle-1);_quickSort(array, middle+1, end);}}//把不必要的参数(起点和终点)抽离,形成更简洁的函数public void quickSort(int[] array){//判断数组非空if(array.length>0){_quickSort(array, 0, array.length-1);}}public static void main(String[] args){//用数据测试代码int[] array={10,12,3,51,1,8,100};QuickSort quickSort=new QuickSort();quickSort.quickSort(array);for(int i=0;i<array.length-1;i++){System.out.print(array[i]+",");}System.out.print(array[array.length-1]);}}

0 0
原创粉丝点击