| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- #include <stdio.h>
 
 - #include <stdlib.h>
 
  
- void quicksort (int arr[], int left, int size) // size为数组元素个数
 
 - {
 
 -     int i,j;
 
 -     i = left;  //左边数据的位置
 
 -     j = size-1;  //右边数据的位置
 
 -     int temp;   //替换用的变量
 
 -     int pivot = arr[(size-1)/2]; //基准点
 
 -     while (i <= j)
 
 -     {
 
 -         while (arr[i] < pivot)
 
 -         {
 
 -             i++;
 
 -         }
 
 -         while (arr[j] > pivot)
 
 -         {
 
 -             j--;
 
 -         }
 
 -         if (i <= j)
 
 -         {
 
 -             temp = arr[i];
 
 -             arr[i] = arr[j];
 
 -             arr[j] = temp;
 
 -             i++;
 
 -             j--;
 
 -         }
 
 -     }
 
 -     if (i < (size-1))
 
 -     {
 
 -         quicksort (arr, i, size-1);
 
 -     }
 
 -     if (j > left)
 
 -     {
 
 -         quicksort (arr, left, j);
 
 -     }
 
 - }
 
  
- //打印数组
 
 - void printarr (int arr[], int size)
 
 - {
 
 -     for (int i = 0; i < size; i++)
 
 -     {
 
 -         printf ("%d ", arr[i]);
 
 -     }
 
 -     printf ("\n");
 
 - }
 
  
- int main()
 
 - {
 
 -     int arr[7] = {1, 5, 2, 2, 3, 4, 3};
 
 -     int size = 7;
 
 -     int left = 0;
 
 -     printarr (arr, size);
 
 -     quicksort (arr, left, size);
 
 -     printarr (arr, size);
 
 -     return 0;
 
 - }
 
 
  复制代码 |   
 
 
 
 |