排序总结 野性酷女 2022-05-16 06:50 165阅读 0赞 快速排序: #include <stdio.h> int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quicksort(int left,int right) { int i,j,t,temp; if(left>right) return; temp=a[left]; //temp中存的就是基准数 i=left; j=right; while(i!=j) { //顺序很重要,要先从右边开始找 while(a[j]>=temp && i<j) j--; //再找右边的 while(a[i]<=temp && i<j) i++; //交换两个数在数组中的位置 if(i<j) { t=a[i]; a[i]=a[j]; a[j]=t; } } //最终将基准数归位 a[left]=a[i]; a[i]=temp; quicksort(left,i-1);//继续处理左边的,这里是一个递归的过程 quicksort(i+1,right);//继续处理右边的 ,这里是一个递归的过程 } int main() { int i,j,t; //读入数据 scanf("%d",&n); for(i=1; i<=n; i++) scanf("%d",&a[i]); quicksort(1,n); //快速排序调用 //输出排序后的结果 for(i=1; i<=n; i++) printf("%d ",a[i]); getchar(); getchar(); return 0; } \` 选择排序2; #include <stdio.h> #include <stdlib.h> int main() { int a[100]; int n,i,j,t; scanf("%d",&n); for(i=0;i<=n-1;i++) { scanf("%d",&a[i]); } for(i=0;i<=n-2;i++) { int k=i; for(j=i+1;j<=n-1;j++) { if(a[k]>a[j]) k=j; } if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } for(i=0;i<=n-1;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d\n",a[i]); } return 0; } 选择排序1 #include <stdio.h> #include <stdlib.h> int main() { int a[100]; int n,i,j,t; scanf("%d",&n); for(i=0;i<=n-1;i++) { scanf("%d",&a[i]); } for(i=0;i<=n-2;i++) { for(j=i+1;j<=n-1;j++) { if(a[j]<a[i]) { t=a[j]; a[j]=a[i]; a[i]=t; } } } for(i=0;i<=n-1;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d\n",a[i]); } return 0; } 冒泡排序: #include <stdio.h> #include <stdlib.h> int main() { int a[100]; int n,i,j,t; scanf("%d",&n); for(i=0;i<=n-1;i++) { scanf("%d",&a[i]); } for(i=0;i<=n-2;i++) { for(j=0;j<=n-2-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<=n-1;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d\n",a[i]); } return 0; } #include <stdio.h> #include <stdlib.h> int main() { int a[100]; int n,i,j,t; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d",&a[i]); } for(i=1;i<=n-1;i++) { for(j=1;j<=n-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<=n-1;i++) { if(i!=n-1) printf("%d ",a[i]); else printf("%d\n",a[i]); } return 0; } 插入排序:
相关 排序总结 写一下关于排序算法的总结。排序是所有算法中最基础的,面试中有可能会手写排序算法,如果对排序算法不是很熟悉,在很短的时间内是写不出来的,所以,需要对排序算法特别的熟悉。 1.冒 柔情只为你懂/ 2022年10月02日 12:47/ 0 赞/ 149 阅读
相关 堆排序、归并排序、快速排序总结 昨天刚把这三个排序算法复习了一遍,其中归并排序和快速排序特别的重要,一定要熟练并理解透彻! 以下排序的结果都默认为非递减 1、堆排序(默认大顶堆) 堆排序的思想:首先 浅浅的花香味﹌/ 2022年09月28日 13:19/ 0 赞/ 183 阅读
相关 排序算法总结 冒泡排序 时间复杂度为O(n2),最好情况下为O(n),空间复杂度为O(1)。稳定的 冒泡排序总结: void swap(int &a,int 比眉伴天荒/ 2022年05月18日 09:36/ 0 赞/ 204 阅读
相关 排序总结 快速排序: include <stdio.h> int a[101],n;//定义全局变量,这两个变量需要在子函数中使用 void quicksort 野性酷女/ 2022年05月16日 06:50/ 0 赞/ 166 阅读
相关 快速排序总结 快速排序 1.前言 快排基于的是冒泡排序改进的一种算法。冒泡排序的时间复杂度为O(n2),而快排的时间复杂度为O(nlgn),有了极大的改进。 2. 原理 素颜马尾好姑娘i/ 2022年04月10日 02:21/ 0 赞/ 160 阅读
相关 排序总结(C++) 冒泡排序 基础知识 冒泡排序:比较相邻的元素。如果第一个比第二个大,就交换他们两个。每次最外面的循环,得到一个最小值。 时间复杂度:$O(n^2)$ 女爷i/ 2022年02月26日 13:54/ 0 赞/ 185 阅读
相关 经典排序总结 冒泡排序(稳定) 依次比较两个相邻的元素,把大的换到后面,一次循环完成后的结果是,最大的数字排在最后。重复以上步骤(除了最后一个),直到排完。 平均时间复杂度:O( 港控/mmm°/ 2022年02月03日 03:41/ 0 赞/ 183 阅读
相关 排序算法总结 最近在看左神的算法视频,随便记录下自己的学习心得,方便以后review,也让大家对基本的排序算法有个了解。 冒泡排序 > 冒泡排序(英语:Bubble Sort)是一种 红太狼/ 2022年01月06日 01:51/ 0 赞/ 315 阅读
相关 排序算法总结 1.冒泡排序 > 冒泡算法思想: > 1.从左到右依次比较相邻的元素。如果第一个比第二个大,就交换他们两个,等全部执行完,最后的元素就是最大的数,这 今天药忘吃喽~/ 2021年12月13日 15:01/ 0 赞/ 286 阅读
相关 排序算法总结 2019-07-20 import java.net.Socket; import java.util.Arrays; import java.uti 超、凢脫俗/ 2021年11月19日 14:54/ 0 赞/ 337 阅读
还没有评论,来说两句吧...