📄 subject_58904.htm
字号:
<p>
序号:58904 发表者:jannie 发表日期:2003-11-04 19:44:23
<br>主题:很小的快速排序程序,结果不对,错在哪了?请指教!
<br>内容:#include <stdio.h><BR>#include <iostream.h><BR><BR>//交换数组中的两个数<BR>void swap(int v[],int i,int j)<BR>{<BR> int temp;<BR><BR> temp=v[i];<BR> v[i]=v[j];<BR> v[j]=temp;<BR>}<BR><BR>//快速排序<BR>void quicksort(int v[],int n)<BR>{<BR> int i,last;<BR> if(n<=1) <BR> return ;//递归结束条件<BR>// swap(v,0,rand()%n);<BR> swap(v,0,5);//任选一数置于首,作为“基准”数<BR> last=0;<BR> for(i=1;i<n;i++)<BR> if(v[i]<v[0])<BR> swap(v,++last,i); //每次发现有比它小的数,就依次放到它后面,last指向最后的一个比它小的数<BR> swap(v,0,last);//将它置换到中间位置,这时它前面的数都比它小,后面的大<BR> quicksort(v,last);<BR> quicksort(v+last+1,n-last-1);//对前后两部分递归进行<BR>}<BR><BR><BR>int main()<BR>{<BR> int a[10];<BR> cout<<"the input numbers are:";<BR> for(int i=0;i<10;i++)<BR> {<BR> cin>>a[i];<BR> }<BR> cout<<endl;//输入一组数<BR><BR> quicksort(a,10);//排序输出<BR><BR> cout<<"the sorted numbers are:";<BR> for(int k=0;k<10;k++)<BR> cout<<a[k]<<" ";<BR> cout<<endl;<BR><BR> return 0;<BR>}<BR>输入:10 9 8 7 6 5 4 3 2 1 <BR>输出:1 3 9 10 5 2 4 8 4213705 1245120<BR>几乎照抄的一个例子,不明白错在哪里 请指教!<BR>2003-11-4 20:07:59
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -