#include<iostream> //快速排序
using namespace std;
int a[101], n;
void quicksort(int left, int right)
{
int i,k, j, t, temp;
if (left > right)
return;
temp = a[left];
i = left;
j = right;
while (i != j)
{
while (a[j] >= temp && i < j)
{
j--;
}
while (a[i] <= temp && i < j)
{
i++;
}
if (i < j)
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
cout << "i=" << i << " " << "j=" << j << " " << endl;
for (k = 1; k <= n; k++)
{
if (k == i||k==j)
cout << "[" << a[k] << "]" << " ";
else
cout << a[k] << " ";
}
cout << endl;
}
a[left] = a[i];
a[i] = temp;
for (k = 1; k <= n; k++)
{
if (k == i)
cout << "[" << a[k] << "]" <<" ";
else
cout << a[k] << " ";
}
cout << endl<<"------------------------"<<endl;
quicksort(left, i - 1);
quicksort(i + 1, right);
return;
}
int main()
{
int i, j;
cin >> n;
for (i = 1; i <= n; i++)
{
cin >> a[i];
}
quicksort(1, n);
cout << "输出最终结果:" << endl;
for (i = 1; i <= n; i++)
{
cout << a[i] << " ";
}
getchar();
return 0;
}
快速排序代码
最新推荐文章于 2024-07-22 10:02:43 发布