#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");
}
转载请注明原文地址: https://mac.8miu.com/read-509126.html