【发布时间】:2015-07-07 20:23:15
【问题描述】:
我一直在尝试制作一个 qsort 算法,但到目前为止我失败了。请记住,在编程方面我是一个新手,所以是的。在我构建并运行并输入我的数组之后,它返回相同的确切数组,而不是对其进行排序。这是有问题的代码:
#include <iostream>
using namespace std;
int v[11], i, n, st, dr;
void qsort (int v[11], int st, int dr)
{
int i=st, j=dr;
int aux;
int pivot = v[(st+dr)/2];
while(i<=j)
while(v[i]<pivot)
{
i++;
if(i<=j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}
if(st<j)
qsort(v,st,j);
if(i<dr)
qsort(v,i,dr);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
st=v[1];
dr=v[n];
qsort(v, st, dr);
cout<<"vectorul sortat este"<<' ';
for(i=1;i<=n;i++)
cout<<v[i]<<' ';
return 0;
}
提前致谢!
【问题讨论】:
-
也许太快了,不是吗? :)
-
st=v[1]; dr=v[n];应该是st=0; dr=n-1;,如果我没记错的话?你觉得它有什么作用?
标签: c++ arrays codeblocks qsort