快排的核心思想是分而治之,即第一步先选一个参考数,第二步将小于参考数的数放左边,大于该参考数的数放右边,第三步分别对左边部分的数和右边部分的数再进行快排递归调用。
参考这个视频来,可以比较快速的理解快排的思想,链接如下:
http://v.ku6.com/show/vGEuBoexpWeYSFPj6-vEdw...html
若对快排不是很了解,建议:先看视频,再看代码
C语言代码:
#include <stdio.h>
void quick_sort(int *a, int p, int r);
int partition(int *a, int p, int r);
void print_array(int *a, int length);
int main(void)
{
int a[8] = {2, 8, 7, 5, 1, 6, 4, 3};
print_array(a, 8);
quick_sort(a, 0, 7);
printf("after quick sort\n");
print_array(a, 8);
return 0