快速排序

mac2025-12-09  3

#include <bits/stdc++.h> using namespace std; int Data[1000]; int size; void Quit_Sort(int strat, int end) { stack<int> S; S.push(strat); S.push(end); while (!S.empty()) { int e = S.top(); S.pop(); int s = S.top(); S.pop(); strat = s; end = e; while (s < e) { while (Data[e] >= Data[s] && e > s) --e; if (e > s) swap(Data[s], Data[e]); while (Data[e] >= Data[s] && e > s) ++s; if (e > s) swap(Data[s], Data[e]); } if (strat < e - 1) { S.push(strat); S.push(e - 1); } if (e + 1 < end) { S.push(e + 1); S.push(end); } } } int main() { cout<<"输入随机生成数组长度:"; cin >> size; for (int i = 0; i < size; ++i) Data[i] = rand() % 100; Quit_Sort(0, size - 1); for (int i = 0; i < size; ++i) cout << Data[i] << " "; system("pause"); }
最新回复(0)