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("\n"); return 0; } int mycmp(const void *a, const void *b) { return *((int*)a)-*((int *)b); }
复制代码

 

posted on   华山青竹  阅读(448)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示