</pre><pre name="code" class="cpp">#include <iostream>
#include <string>
using namespace std;
int partition(string &str, int lo, int hi)
{
char key = str[lo];
while (lo < hi)
{
for (hi; hi > lo; --hi)
{
if (str[hi] < key)
{
str[lo] = str[hi];
str[hi] = key;
lo += 1;
break;
}
}
for (lo; lo < hi; ++lo)
{
if (str[lo] > key)
{
str[hi] = str[lo];
str[lo] = key;
hi -= 1;
break;
}
}
}
return lo;
}
void quicksort(string &str, int lo, int hi)
{
if (lo < hi)
{
int k = partition(str, lo, hi);
quicksort(str, lo, k - 1);
quicksort(str, k + 1, hi);
}
}
int main()
{
string str1 = "ytbsaz";
quicksort(str1, 0, 5);
cout << str1 << endl;
return 0;
}
快速排序算法
最新推荐文章于 2024-10-08 20:32:22 发布