快速排序

#include <stdio.h>
#include <stdlib.h>
void quicksort(int data[], int low, int high)
{
   int left = low;
   int right = high;
    if(left == right) return;
  while(left<right)
  {
   //分为【low mid)和【mid, high]两部分。 
   while( left < right&& data[low] <= data[right])right--;
        if(left == right){ right ++;  break; }
  while(left < right&& data[low]  > data[left])left++;
        if(left == right){ left --; break;}
        int temp = data[right];
        data[right] = data[left];
        data[left] = temp;
}
   quicksort(data,low , left);
   quicksort(data, right, high);
}
main()
{
      int data[] = {7,1,3,2,6};
      quicksort(data, 0, 4);
      int i = 0;
      for(; i< 5; i++)
      {
            printf("%d,", data[i]);
      }
      printf("Hello world !\n");
      system("pause");
}

你可能感兴趣的:(快速排序)