目录

  • 选择排序
  • 插入排序

选择排序

选择排序是最简单最常用的一种排序算法。这里介绍的是简单选择排序 。
选择排序详解

#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++】排序算法相关推荐

  1. 伍六七带你学算法 进阶篇-排序算法

    给定一个整数数组 nums,将该数组升序排列. 示例 1: 输入:[5,2,3,1] 输出:[1,2,3,5] 示例 2: 输入:[5,1,1,2,0,0] 输出:[0,0,1,1,2,5] 各排序算 ...

  2. C++排序算法实现(更新中)

    比较排序法:如冒泡排序.简单选择排序.合并排序.快速排序.其最优的时间复杂度为O(nlogn). 其他排序法:如桶排序.基数排序等.时间复杂度可以达到O(n).但试用范围有要求. 桶排序:排序的数组元 ...

  3. 十种经典排序算法精粹(c语言版本)

    下面给出这段时间我苦心研究验证过的十种经典排序算法的C语言版本,即下面的排序算法: 插入排序,shell排序,冒泡排序,快速排序,选择排序,堆排序,归并排序,桶排序,基数排序和计数排序.整理出来以作备 ...

  4. 十大排序算法 导图总结

    以下为我们经常用到的十大典型排序算法导图,很多设计以及优化的思想值得去参考学习 因为代码较多,所以都添加到对应的实现注释中了,相关代码可以从Mind-mapping获取xmind源文件 参考文档: 基 ...

  5. C++实现十大排序算法(冒泡,选择,插入,归并,快速,堆,希尔,桶,计数,基数)排序算法时间复杂度、空间复杂度、稳定性比较(面试经验总结)

    排序算法分类 内部排序算法又分为基于比较的排序算法和不基于比较的排序算法,其分类如下: 比较排序:   直接插入排序    希尔排序 (插入)  冒泡排序     快速排序  (交换) 直接选择排序  ...

  6. C++拾取——使用stl标准库实现排序算法及评测

    今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...

  7. 常用排序算法的C++实现

    排序是将一组"无序"的记录序列调整为"有序"的记录序列. 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在 ...

  8. python 排序算法 简书_Python---简析八大排序算法

    前言 1 .排序的概念 排序是计算机内经常进行的一种操作,其目的是将一组"无序"的记录序列调整为"有序"的记录序列. 排序分为内部排序和外部排序. 若整个排序过 ...

  9. php常见排序算去,PHP兑现常见排序算法

    PHP实现常见排序算法 //插入排序(一维数组) function insert_sort($arr){ $count = count($arr); for($i=1; $i $tmp = $arr[ ...

  10. 排序算法 - 堆排序

    堆排序是指利用堆这种数据结构所设计的一种排序算法. 类型:选择排序 时间复杂度(最坏):O(nlogn) 时间复杂度(最好):O(nlogn) 时间复杂度(平均):O(nlogn) 空间复杂度:O(1 ...

最新文章

  1. pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)
  2. 学习笔记Hadoop(十三)—— MapReduce开发入门(1)—— MapReduce开发环境搭建、MapReduce单词计数源码分析
  3. Silverlight - Out of Browser配置,安装和卸载
  4. SecureCRT中使用 rz 上传文件 遇到 rz: command not found 的解决办法
  5. 基于证书的WCF安全开发详解
  6. God of War Ascension / 战神4, 再一次迎来新导演!
  7. 机器人方队解说词_创想机器人博物馆介绍配音解说词
  8. Ubuntu安装Sopcast
  9. 安卓Autojs逆向破解必备基础smail基础语法
  10. 手机端APP抓包环境的探索(安卓模拟器)
  11. Go Playground exercise
  12. mysql2000数据库四合一_sql server 2000
  13. python 使用 requests 库发送请求及设置代理
  14. 最牛X得“高考”作文
  15. 税费计算机,友商税费计算器
  16. Linux下套接字详解(五)----基于fork多进程的TCP套接字(阻塞/同步/并发)
  17. 团队对员工工作积极性的影响
  18. SQL 语句中 where 条件后 写上 1=1 是什么意思!
  19. 有关智能操作系统的讨论
  20. 四菱天线怎么加强_四菱天线制作方法.doc

热门文章

  1. 2019 CCPC wannfly winter camp Day 5
  2. Chargen DoS攻击
  3. spring + mina 作为客户端解析H2协议的使用总结
  4. Help:立体图绘制以及根据X,Y,Z三坐标值,在图上描点
  5. VS.Net 的一些小技巧
  6. 55种网页常用小技巧(javascript) (转)
  7. MATLAB之线性回归,逻辑回归,最小二乘法,梯度下降,贝叶斯,最大似然估计
  8. CRFsuite:CRF 工具包及sklearn-crfsuite
  9. (chap4 IP协议) 路由控制表(Routing Table)
  10. 《研磨设计模式》chap11 代理proxy模式