
排序
CM_yali
其实我什么都不知道
展开
-
快速排序
#includeint a[10000];void qsort(int l,int r){ int i,j,mid,p; i=l; j=r; mid=a[(l+r)/2]; do{ while(a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j) { p=a[i];原创 2016-01-30 15:01:57 · 2844 阅读 · 0 评论 -
归并排序
#include int a[10001],r[10001],n,i;void mergesort(int s,int t){ int m,i,j,k; if(s==t) return; m=(s+t) / 2; mergesort(s,m); mergesort(m+1,t); i=s; j=m+1; k=s; while(i<原创 2016-01-30 14:04:26 · 2996 阅读 · 0 评论 -
冒泡排序
#includeint a[10000],n;int bubblesort(int r[]){ int tmp; for(int i=1;i<=n-1;i++) for(int j=1;j<=n-i;j++) if(a[j]<a[j+1]){ tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; }}int main(){ sc原创 2016-01-29 15:44:10 · 2325 阅读 · 0 评论 -
桶排序
#includeint a[10000],num[1000000],n,max;void bucketsort(){ for(int i=1;i<=n;i++){ scanf("%d",&a[i]); if(max<a[i]) max=a[i]; num[a[i]]++; } for(int i=0;i<=max;i++) while(num[i]>0){ p原创 2016-01-29 15:45:04 · 2517 阅读 · 0 评论 -
插入排序
#includeint a[10000],n;int insertsort(int r[]){ int x,j; for(int i=2;i<=n;i++){ x=r[i]; j=i-1; while(x<r[j]){ r[j+1]=r[j]; j--; } r[j+1]=x; }}int main(){ scanf("%d",&n); for(i原创 2016-01-29 15:45:49 · 2815 阅读 · 0 评论 -
选择排序
#includeint n,a[100000];int selectsort(int r[]){ int k,tmp; for(int i=1;i<=n;i++){ k=i; for(int j=i+1;j<=n;j++) if(r[j]<r[k]) k=j; if(k!=i){ tmp=r[i]; r[i]=r[k]; r[k]=tmp;原创 2016-01-29 15:43:07 · 2511 阅读 · 0 评论 -
堆排序
#include#includeint a[1000010],len=0,i,j,k,m,n,t;void push(int k){ a[++len]=k; int x=len,t; while(x>1 && a[x]<a[x/2]){ t=a[x]; a[x]=a[x/2]; a[x/2]=t; x=x/2; }}int top(){ return a[1]原创 2016-03-05 20:53:14 · 314 阅读 · 0 评论