gpt4 book ai didi

c++ - QuickSort 不排序数组

转载 作者:行者123 更新时间:2023-11-28 06:11:00 26 4
gpt4 key购买 nike

我一直在尝试制作一个 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;
}

提前致谢!

最佳答案

stdr 应该是您要排序的初始和最终索引,而不是 (另外,请记住,在 C++ 中,n 元素上的 vector 具有从 0 到 n-1 的索引,因此还要修复你的 for 循环),所以你必须更改

st=v[1];
dr=v[n];

st=0
dr=n-1

或者简单地说:

qsort(v, 0, n-1);

关于c++ - QuickSort 不排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com