亲,右侧初始化的代码是不是很熟悉呢?
没错,这就是快排的经典写法之一。
但是,算法貌似出了点小问题,你能改正过来吗?
相信你是没问题的哦~
当然,夹杂在其中的还有其他的小错误。
很简单的
快来挑战吧~
样例1
输入:
1 4 5 7 9 2 3 6 8 0
输出:
0 1 2 3 4 5 6 7 8 9
#define N 10
using namespace std;
int qsort(int p[], int start, int end)
{
int temp;
int i = start;
int j = end;
int mid = p[(start + end) / 2];
while(i < j)
{
while(p[i] <= mid)
i++;
while(p[j] >= mid)
j--;
if(i <= j)
{
temp = p[i];
p[i] = p[j];
p[j] = temp;
i++;
j--;
}
}
if(j > start)
qsort(p, start, j);
if(i < end)
qsort(p, i, end);
}
int Printarray(int data[], int size)
{
int i;
for(i = 0; i < size; i++)
cout<<data[i]<<" ";
cout<<endl;
}
int main()
{
int array[N];
for(int i = 0; i < N; i++)
cin>>array[i];
qsort(array, 0, N - 1);
Printarray(array, N);
return 0;
}