快速排序

来源:互联网 发布:成都淘宝网店培训 编辑:程序博客网 时间:2024/05/24 02:23
#include <stdio.h>  int Partition(int array[], int low, int high) {     int tmp = array[low];     while (low < high)     {         while (low<high && array[high]>=tmp)         {             --high;         }         array[low] = array[high];          while (low<high && array[low]<=tmp)         {             ++low;         }         array[high] = array[low];     }      array[low] = tmp;      return low; }  void QuickSort(int array[], int low, int high) {     if (low < high)     {         int index = Partition(array, low, high);         QuickSort(array, low, index - 1);         QuickSort(array, index + 1, high);     } }  int main() {     int array[] = {3,2,4,1,5,7,6};     int len = sizeof(array)/sizeof(array[0]);      QuickSort(array, 0, len - 1);      for (int i=0; i<len; i++)     {         printf("%d ", array[i]);     }     printf("\n");      return 0; }