早教吧作业答案频道 -->其他-->
帮我找找我这段程序哪里错了?c++编程,使用以下格式给定一个输入,读取数据后,用快速排序法将每排从小到大重新排好(Quicksort:pivot=(x[left]+x[right])/2)Cases:3101234567891010109876543
题目详情
帮我找找我这段程序哪里错了?
c++编程,使用以下格式给定一个输入,读取数据后,用快速排序法将每排从小到大重新排好(Quicksort:pivot = (x[left] + x[right])/2)
Cases:3
10
1 2 3 4 5 6 7 8 9 10
10
10 9 8 7 6 5 4 3 2 1
11
8 1 11 2 10 9 3 4 7 6 5
我的程序,结果是
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 1
1 2 3 4 7 8 9 10 11 6 5
#include
using namespace std;
// The partition function
int partition(int* input,int p,int r)
{
\x05 int pivot = (input[p] + input[r])/2;
while ( p < r )
{
while ( input[p] < pivot )
p++;
while ( input[r] > pivot )
r--;
if ( input[p] == input[r] )
p++;
else if ( p < r )
{
int tmp = input[p];
input[p] = input[r];
input[r] = tmp;
}
}
return r;
}
// The quicksort recursive function
void quicksort(int* input,int p,int r)
{
if ( p < r )
{
int j = partition(input,p,r);
quicksort(input,p,j-1);
quicksort(input,j+1,r);
}
}
int main()
{
\x05int input[100],i,n,beg,end,test,j;
\x05couttest;
\x05coutinput[i];
\x05\x05}
\x05\x05
\x05\x05beg=0;
\x05\x05end=n-1;
\x05\x05quicksort(input,0,9); //Calling of QuickSort Function
\x05\x05for(i=1;i
c++编程,使用以下格式给定一个输入,读取数据后,用快速排序法将每排从小到大重新排好(Quicksort:pivot = (x[left] + x[right])/2)
Cases:3
10
1 2 3 4 5 6 7 8 9 10
10
10 9 8 7 6 5 4 3 2 1
11
8 1 11 2 10 9 3 4 7 6 5
我的程序,结果是
1 2 3 4 5 6 7 8 9 10
2 3 4 5 6 7 8 9 10 1
1 2 3 4 7 8 9 10 11 6 5
#include
using namespace std;
// The partition function
int partition(int* input,int p,int r)
{
\x05 int pivot = (input[p] + input[r])/2;
while ( p < r )
{
while ( input[p] < pivot )
p++;
while ( input[r] > pivot )
r--;
if ( input[p] == input[r] )
p++;
else if ( p < r )
{
int tmp = input[p];
input[p] = input[r];
input[r] = tmp;
}
}
return r;
}
// The quicksort recursive function
void quicksort(int* input,int p,int r)
{
if ( p < r )
{
int j = partition(input,p,r);
quicksort(input,p,j-1);
quicksort(input,j+1,r);
}
}
int main()
{
\x05int input[100],i,n,beg,end,test,j;
\x05couttest;
\x05coutinput[i];
\x05\x05}
\x05\x05
\x05\x05beg=0;
\x05\x05end=n-1;
\x05\x05quicksort(input,0,9); //Calling of QuickSort Function
\x05\x05for(i=1;i
▼优质解答
答案和解析
for(i=1;i>input[i];
}
输入的时候是下标1~n
quicksort(input, 0, 9);
为什么排序时候会是0~9呢,应该是也是1~n才对吧
}
输入的时候是下标1~n
quicksort(input, 0, 9);
为什么排序时候会是0~9呢,应该是也是1~n才对吧
 看了 帮我找找我这段程序哪里错了?...的网友还看了以下:
高一离子方程式.问此式是对是错,错在哪里?离子方程式.氢氧化铜与硫酸反应:OH-+H+===H2O. 2020-03-30 …
某研究性学习小组,从下列装置中选用部分装置组装后在实验室里制取氧气,并通过排水量来测定所收集到氧气 2020-04-08 …
(2014•嘉定区二模)BCl3是重要的化工原料,其沸点12℃.500℃时,向2L的密闭容器中按一 2020-05-14 …
一道关于范式的证明证明主析取范式的否定式等价于主合取范式主合取范式的否定式等价于主析取范式 2020-05-14 …
化学反应中量的问题(方程式的书写)假如1molCl2和1molFeBr2反应,那么有1molFe2 2020-05-16 …
下面说法中,正确的是()A.分式方程一定有解B.分式方程就是含有分母的方程C.分式方程中,分母中一 2020-08-02 …
同学们对A、B两瓶氢氧化钠溶液是否变质进行了探究.(1)取一定量A溶液,逐滴滴加稀盐酸,根据实验情况 2020-11-03 …
一加一的程式定理这是什么? 2020-11-07 …
某同学欲利用单质铜制取Cu(OH)2,其设计方案如图所示:(1)步骤1中观察到的现象是.(2)步骤2 2020-12-09 …
某同学用下列装置(固定、加热仪器和橡胶管略)进行有关氨气制取的实验探究,回答下列问题。(1)若用装置 2021-01-22 …