//手写快排qsort的模板函数
void qsort(int* a, int left, int right) {
if(left+1 >= right) return ;
int i = left, j = right-1, key = a[left];
while(i < j) {
while(i < j && key <= a[j]) j--;
a[i] = a[j];
while(i < j && a[i] <= key) i++;
a[j] = a[i];
}
a[i] = key;
qsort(a, left, i);
qsort(a, i+1, right);
}
//.................................................................................................................
//例子
#include<stdio.h> //快速排序的例子
void qsort(int* a, int left, int right) {
if(left+1 >= right) return ;
int i = left, j = right-1, key = a[left];
while(i < j) {
while(i < j && key <= a[j]) j--;
a[i] = a[j];
while(i < j && a[i] <= key) i++;
a[j] = a[i];
}
a[i] = key;
qsort(a, left, i);
qsort(a, i+1, right);
}
int main() {
int a[11] = {0, 2, 3, 1, 3,5,34,2,1,4,6};
qsort(a, 0, 11);
for(int i = 0; i < 11; i++) printf("%d ", a[i]);
return 0;
}手写的qsort快速排序
最新推荐文章于 2025-11-22 10:55:01 发布
本文提供了一个手写实现的快速排序算法模板,并通过一个具体的示例展示了如何使用该模板进行数组排序。快速排序是一种高效的排序算法,采用分治法策略来把一个序列分为较小和较大的两个子序列。
3374

被折叠的 条评论
为什么被折叠?



