#include<iostream>
using namespace std;
//快速排序
void quicksort(int a[] ,int left , int right);
int main()
{
int a[10] = {2 ,5, 7, 1 ,9 ,8 ,4 ,10 ,3 ,6};
cout << "没有排序" << endl;
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
cout << endl;
quicksort(a , 0 , 9);
cout << "排序完成" << endl;
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
system("pause");
return 0;
}
void quicksort(int a[], int left, int right )
{
int l, r, temp, n;
if (left < right)
{
l = left + 1;
r = right;
temp = a[left];
while (l < r)
{
while (a[r] > temp)
{
--r;
}
while (a[l] <= temp)
{
++l;
}
if (l < r)
{
n = a[l];
a[l] = a[r];
a[r] = n;
}
}
//l ,r 指针变换位置,原因在最后一次的时候l>r;
n = l;
l = r;
r = n;
n = a[left];
a[left] = a[l];
a[l] = n;
for (int i = 0; i < 10; i++)
{
cout << a[i] << " ";
}
cout << endl;
quicksort(a, left, l - 1 );
quicksort(a, r , right);
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交