插入排序法

原理:
插入排序对排序的序列分为:有序序列和无序序列两部分。
通过构建有序序列对无序序列进行排序,假设第一个数字为有序序列,其后的数字为无序序列,在无序序列中取一个数字与有序序列中的数字进行比较,找到合适的位置插入到有序序列中,依次循环直到无序序列的全部数字插入完毕。

C语言代码

#include <stdio.h>
#include <stdlib.h>void Insertion_Sort(int a[],int n)
{   int i,j;for ( i = 1; i < n; i++)  //假设第一个数为有序序列,所以数组下标从一开始{int temp=a[i];    //从无序序列中取一个数为待插入数字,与有序序列中的数进行比较,找到合适的位置插入其中for ( j = i; j>0 && a[j-1]> temp; --j)  //判断条件为两个,j>0为数组边界判断,a[j-1]>temp为插入的判断条件{a[j]=a[j-1];}a[j]=temp;  //找到合适的位置插入其中}
}void main()
{int a[]={14,9,56,23,18,10,32};/*sizeof() 是运算符,计算小括号里的变量占内存多少单元,计量单位是字节数。sizeof(int); 计算一个 int 型 变量占内存多少单元。sizeof(a) 计算 整型数组里元素 占用内存多少单元。显然,整型数组元素 占用内存为  x* sizeof(int) 个字节。//x为元素个数n=sizeof(a)/sizeof(int) = [7 * sizeof(int)] / sizeof(int) = 7.*/int n=sizeof(a)/sizeof(int);   //计算数组元素总共多少个int i;Insertion_Sort(a,n);//输出结果for ( i = 0; i < n; i++)  {printf("%d ",a[i]);}system("pause");}

十大排序算法——插入排序法(C语言)相关推荐

  1. 数据结构与算法:十大排序算法之插入排序

    数据结构与算法:十大排序算法之插入排序 package TopTenSortingAlgorithms;import java.util.Arrays; import java.util.Scanne ...

  2. 程序员必备十大排序算法

    程序员必备十大排序算法 常见排序算法 基本概念 插入排序 直接插入排序 排序思路 排序过程 代码实现 算法分析 折半插入排序 排序思路 排序过程 代码实现 算法分析 希尔排序 排序思路 排序过程 代码 ...

  3. 这或许是东半球分析十大排序算法最好的一篇文章

    作者 | 不该相遇在秋天 转载自五分钟学算法(ID:CXYxiaowu) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强 ...

  4. 「干货总结」程序员必知必会的十大排序算法

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 绪论 身 ...

  5. 「归纳|总结」程序员必知必会的十大排序算法

    微信搜一搜「bigsai」关注这个有趣的程序员 新人原创公众号,求支持一下!你的点赞三连肯定对我至关重要! 文章已收录在 我的Github bigsai-algorithm 欢迎star 本文目录 绪 ...

  6. 归并排序执行次数_十大排序算法,看这篇就够了

    排序算法分类[1][2] 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序,它可以 ...

  7. 中希尔排序例题代码_【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章...

    码农有道 历史文章目录(请戳我) 关于码农有道(请戳我) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强烈建议先收藏然后 ...

  8. 程序员必知必会的十大排序算法

    绪论 身为程序员,十大排序是是所有合格程序员所必备和掌握的,并且热门的算法比如快排.归并排序还可能问的比较细致,对算法性能和复杂度的掌握有要求.bigsai作为一个负责任的Java和数据结构与算法方向 ...

  9. mysql外部排序算法_「干货总结」程序员必知必会的十大排序算法

    绪论 身为程序员,十大排序是是所有合格程序员所必备和掌握的,并且热门的算法比如快排.归并排序还可能问的比较细致,对算法性能和复杂度的掌握有要求.bigsai作为一个负责任的Java和数据结构与算法方向 ...

  10. 【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章

    原地址:https://mp.weixin.qq.com/s?__biz=MzIwNTc4NTEwOQ==&mid=2247486981&idx=1&sn=c63cd080be ...

最新文章

  1. 微服务系列(七):将单体应用改造为微服务
  2. quartz表达式在线生成器
  3. Keil中RO-data、RW-data、ZI-data意义
  4. Blackhat兵器谱新添IOT安全武器 低配置也能高性能运行
  5. 3. 定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这
  6. 计算机主机箱前后都有什么,目前四种热门的主机机箱设计都有哪些优缺点?
  7. 【计算机网络】—— 差错控制(检错编码)
  8. matlab循环遍历数组_MatLab简易教程 #8 循环
  9. windows socket 网络编程
  10. 大厂首发:springcloud菜鸟教程
  11. php hex2bin_PHP bin2hex()函数与示例
  12. 【硬件常识】与PCB基本布线规范与设计原则|请问LED白光、红光、黄光工作电压压降是多少
  13. 翻译官方Vellum教程:Breaking and tearing(破裂撕开)
  14. 硬盘主引导记录,分区引导记录(MBR,PBR)
  15. ORACLE获取当天所在月份的所有日期和周几(每月类似台历显示)
  16. 手机收到回复TD退订的短信,需要回复吗?今天算是搞明白了
  17. DS1302时钟程序解读
  18. linux gzip压缩/解压缩*.gz文件
  19. 2018-001-《解忧杂货店》
  20. 【论文翻译 | AAAI19】HHNE - Hyperbolic Heterogeneous Information Network Embedding 双曲异构信息网络嵌入

热门文章

  1. git 查看修改明细_Git(查看修改记录)
  2. php函数获取数据库中的表格,初步了解PHP获取数据库表信息函数_PHP教程
  3. java 获取class的方法_[Java教程]Java反射定义、获取Class三种方法
  4. 手机开机显示设备服务器信息,原 live-server启动一个本地服务器(手机访问)
  5. jeesite如何已生成数据的数据源_JeeSite如何正确连接SQL SERVER 数据库
  6. showModalDialog窗体滚动条只显示竖向
  7. openjudge 7622 求排列的逆序数(归并)
  8. 第13章 用序列化保存模型
  9. vmware中修改虚拟机MAC地址的方法!
  10. 00-JavaScript基础-基本概念