#include <stdio.h>
#include <stdlib.h>
//快速排序
void quickSort();
int main(int argc, const char * argv[])
{
int num_really[11];
for (int i = 0; i < 11; i++) {
num_really[i] = arc4random() % (90 - 10 + 1) + 10;
}
for (int i = 0; i < 11; i++) {
printf("%d ", num_really[i]);
}
printf("\n");
quickSort(num_really, 0, 10);
for (int i = 0; i < 11; i++) {
printf("%d ", num_really[i]);
}
printf("\n");
return 0;
}
//快速排序
void quickSort(int num[], int start, int end) {
int i = start;
int j = end;
//记录比较值
int k = num[start];
//记录上一步是什么
int past_step = 0;
while (i != j) {
//找比比较值大的数
if (past_step == 0) {
while (num[j] > k) {
j--;
if (j == i)
break;
}
num[i] = num[j];
past_step = 1;
} else {
while (num[i] < k) {
i++;
if (i == j)
break;
}
num[j] = num[i];
past_step = 0;
}
}
num[i] = k;
if (i > start)
quickSort(num, start, i);
if (i+1 < end)
quickSort(num, i+1, end);
}
C语言-快速排序法
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 有了前面一系列的铺垫和准备后,我们终于能走到至关重要的一刻。在本节,我们将用C语言开发快速排序算法,然后利用我们的...
