首页 > 代码库 > quickSort

quickSort

 1 package POJ; 2  3 public class Main { 4  5     /** 6      *  7      * QuickSort 8      *  9      */10     public static void main(String[] args) {11         Main so = new Main();12         int[] list = { 6, 4, 2, 3, 1, 5, 10, 4, 9, 8, 11, 7 };    13         int[] result=so.quickSort(list, 0, 11);14         for(int i:result)15             System.out.println(i);16     }    17     public int[] quickSort(int[] list,int left,int right){18         int index=partition(list,left,right);19         if(left<index-1){20             quickSort(list, left, index-1);21         }22         if(index<right){23             quickSort(list, index, right);24         }25         return list;26     }27     private int partition(int[] list, int left, int right) {28         // TODO Auto-generated method stub29         int pivot=list[(left+right)/2];30         while(left<=right){31             while(list[left]<pivot)32                 left++;33             while(list[right]>pivot)34                 right--;35             if(left<=right){36                 swap(list,left,right);37                 left++;38                 right--;39             }40         }41         return left;42     }43     private void swap(int[] list, int left, int right) {44         // TODO Auto-generated method stub45         int temp=list[left];46         list[left]=list[right];47         list[right]=temp;48     }49 }