黑马程序员技术交流社区

标题: java快排代码,纯手打 [打印本页]

作者: zhangxin    时间: 2015-7-8 20:36
标题: java快排代码,纯手打
  1. package sort;
  2. /**
  3. * 快排代码
  4. * @author Administrator
  5. *
  6. */
  7. public class Sort {
  8.        
  9.         int [] a = {49,38,65,97,76,13,27,48,78,34,7,4};
  10.         public Sort(){
  11.                 quick(a);
  12.                 for (int i = 0; i < a.length; i++) {
  13.                         System.out.print(a[i]+" ");
  14.                 }
  15.                
  16.         }
  17.         /**
  18.          * 使用两个指针low,high,初值分别是数组的头和尾,设置key为第一个记录,首先从high开始向前搜索
  19.          * 第一个小于key的记录和key所在的位置进行交换,然后从low开始向后搜索第一个大于key的记录和此时
  20.          * key所在的位置进行交换,重复至low=high为止,
  21.          * 方法使原数组被key值分为两个整体有序的数组
  22.          * @param list
  23.          * @param low
  24.          * @param high
  25.          * @return
  26.          */
  27.         public int getMiddle(int [] list,int low, int high){
  28.                 int temp = list[low];
  29.                 while(low<high){
  30.                         while(low<high&&list[high]>=temp)
  31.                         {
  32.                                 high--;
  33.                         }
  34.                         list[low]=list[high];
  35.                         while(low<high&&list[low]<=temp)
  36.                         {
  37.                                 low++;
  38.                         }
  39.                         list[high] = list[low];
  40.                 }
  41.                 list[low] = temp;
  42.                 return low;
  43.         }
  44.         public void _quickSort(int [] list, int low, int high){
  45.                 if(low<high){
  46.                         int middle = getMiddle(list,low,high);
  47.                         _quickSort(list,low,middle-1);//递归调用方法
  48.                         _quickSort(list,middle+1,high);
  49.                 }
  50.         }
  51.         public void quick(int [] a2){
  52.                 if(a2.length>0)
  53.                         _quickSort(a2,0,a2.length-1);
  54.         }
  55.        
  56.        
  57.         public static void main(String[] args) {
  58.                 new Sort();

  59.         }

  60. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2