/*
* Copyright 2014 YU Heng-yang. All rights reserved.
*
* quick_sort.c - Quick sort implementation 1.
*
* 2014-7-5 YU Heng-yang.
*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "common.h"
void quick_sort(int *arr, int n);
int main(int argc, char *argv[])
{
int n, *array;
n = input(&array);
quick_sort(array, n);
output(array, n);
return 0;
}
void quick_sort(int *arr, int n)
{
int i, k;
assert(arr);
if (n <= 1)
return;
/* choose arr[0] as pivot, not very good */
k = 0;
for (i = 0; i < n; i++)
if (arr[i] < arr[0])
swap(arr, ++k, i);
swap(arr, 0, k);
quick_sort(arr, k);
quick_sort(arr + k + 1, n - k - 1);
}
快速排序1
最新推荐文章于 2021-11-19 16:57:43 发布