Quick Sort
#include <iostream> using namespace std; void QuickSortCore(int a[], int start, int end) { if (start > end) return; int key = a[start]; int blank = start; int left = start + 1; int right = end; while(left <= right){//维护left right blank key if (blank < left){ if (key <= a[right]){ right--; continue; } else{ a[blank] = a[right]; blank = right--; continue; } } else if (blank > right){ if (key >= a[left]){ left++; continue; } else{ a[blank] = a[left]; blank = left++; continue; } } } a[blank] = key; QuickSortCore(a, start, blank - 1); QuickSortCore(a, blank + 1, end); } void QuickSort(int a[], int len){ if (!a || len < 0) return; QuickSortCore(a, 0, len-1); } int main() { int a[] = {3,6,5,81,94,53,0,12,4,2,4,2,1}; QuickSort(a, 13); return 0; }
EOF
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步