wikioi 1076 排序 【这里含冒泡、选择、插入以及快排库函数的调用】

/*===================================================================
1076 排序 
题目描述 Description
    给出n和n个整数,希望你从小到大给他们排序
输入描述 Input Description
    第一行一个正整数n
    第二行n个用空格隔开的整数
输出描述 Output Description
    输出仅一行,从小到大输出n个用空格隔开的整数
样例输入 Sample Input
    3
    3 1 2
样例输出 Sample Output
    1 2 3
数据范围及提示 Data Size & Hint
    1<=n<=100000

解析:不说了,直接看代码吧。 =====================================================================
*/ #include<stdio.h> #include<stdlib.h> int mycmp(const void *a, const void *b); int main() { int n,a[100000],i,j,flag,t,k; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); //下面是冒泡算法排序 ,结果超时 /*for(i=1;i<n;i++) { flag=1; for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { flag=0; t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } if(flag) break; //if(flag==1) break; }*/ //下面是选择排序算法,结果超时 /*for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) //寻找a[i+1]~a[n-1]当中最小的元素并把它的下标记录到k里面。 if(a[j]<a[k]) k=j; if(i!=k) { t=a[k]; a[k]=a[i]; a[i]=t; } } */ //下面是插入排序算法,结果超时 /*for(i=1;i<n;i++) { t=a[i]; for(j=i-1;j>=0&&(t<a[j]);j--) a[j+1]=a[j]; a[j+1]=t; } */ //下面调用快排库函数,结果AC qsort(a,n,sizeof(a[0]),mycmp); for(i=0;i<n;i++) printf("%d ",a[i]); printf(" "); return 0; } int mycmp(const void *a, const void *b) { return *((int*)a)-*((int *)b); }
原文地址:https://www.cnblogs.com/huashanqingzhu/p/3458064.html