排序算法解析
了解数据结构与算法:数组、链表、排序算法等 #生活技巧# #工作学习技巧# #编程语言学习路径#
冒泡
#include<stdio.h> int main(int argc, char* argv[]) {int n;int a[100];while(scanf("%d",&n)!=EOF) //读入数,Ctrl+z即可退出{//如果是读入字符串的话则要用 while(gets(字符串变量))int i,j,t;for(i=0;i<n;i++){scanf("%d",&a[i]);}for(i=0;i<n;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;}}}for(i=0;i<n;i++){if(i==0){printf("%d",a[i]);}else{printf(" %d",a[i]);}}printf("\n");}return 0; }
123456789101112131415161718192021222324252627282930313233sort
#include<stdio.h> #include<algorithm> using namespace std; bool cmp(int x,int y) //表示当返回值为true时,第一个参数将会排在第二该参数前面 {return x>y; } int main() {int n;int a[200];while(scanf("%d",&n)!=EOF) //读入数,Ctrl+z即可退出{//如果是读入字符串的话则要用 while(gets(字符串变量))int i,j,t;for(i=0;i<n;i++){scanf("%d",&a[i]);}sort(a,a+n); //升序sort(a,a+n,cmp); //降序//C++中sort函数快速排序的核心部分//for(i=0;i<n;i++){if(i==0){printf("%d",a[i]);}else{printf(" %d",a[i]);}}printf("\n");}return 0; }
1234567891011121314151617181920212223242526272829自定义sort函数,通过cmp重写排序规则
例:按照学生成绩排序,若成绩相同按姓氏,姓氏相同按年龄
#include<stdio.h> #include<algorithm> #include<string.h> using namespace std; struct S{char name[100];int age;//定义一个结构体int grade; }stu[1000]; bool cmp(S s1,S s2) {//重写sort函数中的cmpif(s1.grade!=s2.grade)//若成绩不相同 则成绩高者在前{return s1.grade>s2.grade;}else if(strcmp(s1.name,s2.name)!=0){ //若成绩相同比姓氏,姓氏序小者在前,字符串比较用strcmp(s1,s2)return strcmp(s1.name,s2.name)<0;}else //若成绩姓氏均相同,年龄小者在前{return s1.age<s2.age;} }* int main() {int n;while(scanf("%d",&n)!=EOF){int i;for(i=0;i<n;i++){scanf("%s %d %d",&stu[i].name,&stu[i].age,&stu[i].grade);}**sort(stu,stu+n,cmp);**for(i=0;i<n;i++){printf("%s %d %d\n",stu[i].name,stu[i].age,stu[i].grade);}}return 0; }
1234567891011121314151617181920212223242526272829303132333435363738394041选择法
for(i=0;i<n;i++) {k=i;for(j=i+1;j<n-1;j++){if(a[j]>a[k])k=j;}int t;t=a[i];a[i]=a[k];a[k]=t; } 1234567891011
网址:排序算法解析 https://www.yuejiaxmz.com/news/view/563537
相关内容
排序算法与二分查找解码生活:基础解析算法如何改变我们的世界
快速排序详解
解码日常:揭秘那些改变生活的微小算法程序
APS智能排产+运筹优化算法=?
浮点数排序算法
php四种基础排序(基础算法)
我店生活系统小程序开发功能解析
《数据结构与算法分析
深入解析算法效率核心:时间与空间复杂度概览及优化策略