|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码 |
|