Who's in the Middle(简单排序)
训练计划第一题,先从水题开始:对数组进行排序,然后输出中间数。
#include <iostream> using namespace std; int main() { int i, j, n,t; int a[10000]; cin>>n; for(i=0; i<n; i++) { cin>>a[i]; } //冒泡排序 for(i=0; i<n-1; i++) for(j=0; j<n-i-1; j++) if(a[j]<a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } cout<<a[n/2]<<endl; return 0; }
快速排序:
#include <iostream> using namespace std; //快速排序 void qsort(int a[ ], int l, int r) { int x=a[l], i=l, j=r; if(l>=r) return; while(i<j) { while(i<j && a[j]>=x) j--; a[i]=a[j]; while(i<j && a[i]<=x) i++; a[j]=a[i]; } a[i]=x; qsort(a,l,i-1); qsort(a,i+1,r); } int main() { int i, n; int a[10000]; cin>>n; for(i=0; i<n; i++) { cin>>a[i]; } qsort(a,0,n-1); cout<<a[n/2]<<endl; return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。