现在的位置: 首页 > 综合 > 正文

快排序(JAVA)

2014年01月02日 ⁄ 综合 ⁄ 共 1168字 ⁄ 字号 评论关闭

/* QuickSort.java */

public class QuickSort
{
     public static void main(String []args)
     {
          int []a = {4,5,2,3,7,1};
          int size = a.length;

          System.out.print("Befor sort:");
          for(int i=0;i<size;i++)
              System.out.print(a[i]);

          doQuickSort(0,size -1,a);
          System.out.print("/nAfter sort:");
          for(int i=0;i<size;i++)
              System.out.print(a[i]);          
     }
     public static void doQuickSort(int start,int end,int []a)
     {
          int left = start;
          int right = end;
          int tmp = 0;

            // 给第一个元素a[left]找出其位置,
            // 使其左边得值都小于他,右边得值都大于他

          while(left<right)
          {
               while(left<right && a[left] < a[right])
               {
                   right--;
               }
               tmp = a[left];
               a[left] = a[right];
               a[right] = tmp;
               while(left<right && a[left] < a[right])
               {
                   left++;
               }
               tmp = a[left];
               a[left] = a[right];
               a[right] = tmp;
          }
         
          if(left==right)
          {
               doQuickSort(start,left-1,a);
               doQuickSort(right+1,end,a);
          }
      }
}

抱歉!评论已关闭.