#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");
}
快速排序
最新推荐文章于 2024-08-13 09:00:00 发布