【C/C++】排序算法
目录
- 选择排序
- 插入排序
选择排序
选择排序是最简单最常用的一种排序算法。这里介绍的是简单选择排序 。
选择排序详解
#include<cstdio>
#define N 5
int main(void)
{int a[N]={12,3,13,45,4};int i,j,k,temp;for(i=0;i<N;i++){k=i;for(j=i+1;j<N;j++){if(a[j]<a[k])k=j;//记录最小的下标 }temp=a[i];a[i]=a[k];a[k]=temp;}for(i=0;i<5;i++){printf("%d ",a[i]);}return 0;
}
由上述可知总的复杂度为O(n2)。
插入排序
这里介绍的是最直观的直接插入排序。
插入排序详解
#include<cstdio>
#define N 5
int main(void)
{int a[N]={12,3,13,45,4};int i,j,temp;for(i=1;i<N;i++){temp=a[i];//temp临时存放a[i] j=i;while(j>0&&temp<a[j-1])//只要temp小于前一个元素a[j-1] {//把a[j-1]后移一位至a[j] a[j]=a[j-1];j--;}a[j]=temp;}for(i=0;i<5;i++){printf("%d ",a[i]);}return 0;
}
【C/C++】排序算法相关推荐
- 伍六七带你学算法 进阶篇-排序算法
给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...
- C++排序算法实现(更新中)
比较排序法:如冒泡排序.简单选择排序.合并排序.快速排序.其最优的时间复杂度为O(nlogn). 其他排序法:如桶排序.基数排序等.时间复杂度可以达到O(n).但试用范围有要求. 桶排序:排序的数组元 ...
- 十种经典排序算法精粹(c语言版本)
下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序.整理出来以作备 ...
- 十大排序算法 导图总结
以下为我们经常用到的十大典型排序算法导图,很多设计以及优化的思想值得去参考学习 因为代码较多,所以都添加到对应的实现注释中了,相关代码可以从Mind-mapping获取xmind源文件 参考文档: 基 ...
- C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)
排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序: 直接插入排序 希尔排序 (插入) 冒泡排序 快速排序 (交换) 直接选择排序 ...
- C++拾取——使用stl标准库实现排序算法及评测
今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...
- 常用排序算法的C++实现
排序是将一组"无序"的记录序列调整为"有序"的记录序列. 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在 ...
- python 排序算法 简书_Python---简析八大排序算法
前言 1 .排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列. 排序分为内部排序和外部排序. 若整个排序过 ...
- php常见排序算去,PHP兑现常见排序算法
PHP实现常见排序算法 //插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i $tmp = $arr[ ...
- 排序算法 - 堆排序
堆排序是指利用堆这种数据结构所设计的一种排序算法. 类型:选择排序 时间复杂度(最坏):O(nlogn) 时间复杂度(最好):O(nlogn) 时间复杂度(平均):O(nlogn) 空间复杂度:O(1 ...
最新文章
- pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)
- 学习笔记Hadoop(十三)—— MapReduce开发入门(1)—— MapReduce开发环境搭建、MapReduce单词计数源码分析
- Silverlight - Out of Browser配置,安装和卸载
- SecureCRT中使用 rz 上传文件 遇到 rz: command not found 的解决办法
- 基于证书的WCF安全开发详解
- God of War Ascension / 战神4, 再一次迎来新导演!
- 机器人方队解说词_创想机器人博物馆介绍配音解说词
- Ubuntu安装Sopcast
- 安卓Autojs逆向破解必备基础smail基础语法
- 手机端APP抓包环境的探索(安卓模拟器)
- Go Playground exercise
- mysql2000数据库四合一_sql server 2000
- python 使用 requests 库发送请求及设置代理
- 最牛X得“高考”作文
- 税费计算机,友商税费计算器
- Linux下套接字详解(五)----基于fork多进程的TCP套接字(阻塞/同步/并发)
- 团队对员工工作积极性的影响
- SQL 语句中 where 条件后 写上 1=1 是什么意思!
- 有关智能操作系统的讨论
- 四菱天线怎么加强_四菱天线制作方法.doc
热门文章
- 2019 CCPC wannfly winter camp Day 5
- Chargen DoS攻击
- spring + mina 作为客户端解析H2协议的使用总结
- Help:立体图绘制以及根据X,Y,Z三坐标值,在图上描点
- VS.Net 的一些小技巧
- 55种网页常用小技巧(javascript) (转)
- MATLAB之线性回归,逻辑回归,最小二乘法,梯度下降,贝叶斯,最大似然估计
- CRFsuite:CRF 工具包及sklearn-crfsuite
- (chap4 IP协议) 路由控制表(Routing Table)
- 《研磨设计模式》chap11 代理proxy模式