www

导航

QuickSort

int Partition(vector<int> &input, int start, int end)
{
     int index=start;
     for(int i=start+1; i<=end; i++)
     {
          if(input[i]<input[start])
          {
               ++index;
               if(i!=index)
               {
                   swap(input[i], input[index]);
               }
          }
      }      
      swap(input[start], input[index]);
      return index;
}

void QuickSort(vector<int> &input, int start, int end)
{
      if(start>=end)
             return;
      int index=Partition(input, start, end);
      if(index>start)
      {
             QuickSort(input, start, index-1);
      }
      if(index<end)
      {
             QuickSort(input, index+1, end);
      }
}

  

  

posted on 2017-09-18 16:03  www_practice  阅读(111)  评论(0编辑  收藏  举报