C_数据结构_快速排序
# include <stdio.h> void QuickSort(int * a, int low, int high); int FindPos(int * a, int low, int high); int main(void) { int a[6] = {2, 1, 0, 5, 8, 3}; int i; QuickSort(a, 0, 5); //第二个参数表示第一个元素的下标,第三个参数表示最后一个元素的下标,表示把a[0]-a[5]进行排序 for (i=0; i<6; ++i) printf("%d ", a[i]); printf("\n"); return 0; } void QuickSort(int * a, int low, int high) { int pos; if (low < high) { pos = FindPos(a, low, high); QuickSort(a, low, pos-1); QuickSort(a, pos+1, high); } } int FindPos(int * a, int low, int high) { int val = a[low]; while (low < high) { while (low < high && a[high]>=val) --high; a[low] = a[high]; while (low<high && a[low]<=val) ++low; a[high] = a[low]; } //终止while循环后low和high一定是相等的 a[low] = val; return low; //high可以改为low,但不能改为val,也不能改为a[low]和a[high] }
请你一定不要停下来 成为你想成为的人
感谢您的阅读,我是LXL
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步