十大排序算法——插入排序法(C语言)
插入排序法
原理:
插入排序对排序的序列分为:有序序列和无序序列两部分。
通过构建有序序列对无序序列进行排序,假设第一个数字为有序序列,其后的数字为无序序列,在无序序列中取一个数字与有序序列中的数字进行比较,找到合适的位置插入到有序序列中,依次循环直到无序序列的全部数字插入完毕。
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语言)相关推荐
- 数据结构与算法:十大排序算法之插入排序
数据结构与算法:十大排序算法之插入排序 package TopTenSortingAlgorithms;import java.util.Arrays; import java.util.Scanne ...
- 程序员必备十大排序算法
程序员必备十大排序算法 常见排序算法 基本概念 插入排序 直接插入排序 排序思路 排序过程 代码实现 算法分析 折半插入排序 排序思路 排序过程 代码实现 算法分析 希尔排序 排序思路 排序过程 代码 ...
- 这或许是东半球分析十大排序算法最好的一篇文章
作者 | 不该相遇在秋天 转载自五分钟学算法(ID:CXYxiaowu) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强 ...
- 「干货总结」程序员必知必会的十大排序算法
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 绪论 身 ...
- 「归纳|总结」程序员必知必会的十大排序算法
微信搜一搜「bigsai」关注这个有趣的程序员 新人原创公众号,求支持一下!你的点赞三连肯定对我至关重要! 文章已收录在 我的Github bigsai-algorithm 欢迎star 本文目录 绪 ...
- 归并排序执行次数_十大排序算法,看这篇就够了
排序算法分类[1][2] 比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序. 非比较类排序:不通过比较来决定元素间的相对次序,它可以 ...
- 中希尔排序例题代码_【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章...
码农有道 历史文章目录(请戳我) 关于码农有道(请戳我) 前言 本文全长 14237 字,配有 70 张图片和动画,和你一起一步步看懂排序算法的运行过程. 预计阅读时间 47 分钟,强烈建议先收藏然后 ...
- 程序员必知必会的十大排序算法
绪论 身为程序员,十大排序是是所有合格程序员所必备和掌握的,并且热门的算法比如快排.归并排序还可能问的比较细致,对算法性能和复杂度的掌握有要求.bigsai作为一个负责任的Java和数据结构与算法方向 ...
- mysql外部排序算法_「干货总结」程序员必知必会的十大排序算法
绪论 身为程序员,十大排序是是所有合格程序员所必备和掌握的,并且热门的算法比如快排.归并排序还可能问的比较细致,对算法性能和复杂度的掌握有要求.bigsai作为一个负责任的Java和数据结构与算法方向 ...
- 【数据结构与算法】这或许是东半球分析十大排序算法最好的一篇文章
原地址:https://mp.weixin.qq.com/s?__biz=MzIwNTc4NTEwOQ==&mid=2247486981&idx=1&sn=c63cd080be ...
最新文章
- 微服务系列(七):将单体应用改造为微服务
- quartz表达式在线生成器
- Keil中RO-data、RW-data、ZI-data意义
- Blackhat兵器谱新添IOT安全武器 低配置也能高性能运行
- 3.	定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这
- 计算机主机箱前后都有什么,目前四种热门的主机机箱设计都有哪些优缺点?
- 【计算机网络】—— 差错控制(检错编码)
- matlab循环遍历数组_MatLab简易教程 #8 循环
- windows socket 网络编程
- 大厂首发:springcloud菜鸟教程
- php hex2bin_PHP bin2hex()函数与示例
- 【硬件常识】与PCB基本布线规范与设计原则|请问LED白光、红光、黄光工作电压压降是多少
- 翻译官方Vellum教程:Breaking and tearing(破裂撕开)
- 硬盘主引导记录,分区引导记录(MBR,PBR)
- ORACLE获取当天所在月份的所有日期和周几(每月类似台历显示)
- 手机收到回复TD退订的短信,需要回复吗?今天算是搞明白了
- DS1302时钟程序解读
- linux gzip压缩/解压缩*.gz文件
- 2018-001-《解忧杂货店》
- 【论文翻译 | AAAI19】HHNE - Hyperbolic Heterogeneous Information Network Embedding 双曲异构信息网络嵌入
热门文章
- git 查看修改明细_Git(查看修改记录)
- php函数获取数据库中的表格,初步了解PHP获取数据库表信息函数_PHP教程
- java 获取class的方法_[Java教程]Java反射定义、获取Class三种方法
- 手机开机显示设备服务器信息,原 live-server启动一个本地服务器(手机访问)
- jeesite如何已生成数据的数据源_JeeSite如何正确连接SQL SERVER 数据库
- showModalDialog窗体滚动条只显示竖向
- openjudge 7622 求排列的逆序数(归并)
- 第13章 用序列化保存模型
- vmware中修改虚拟机MAC地址的方法!
- 00-JavaScript基础-基本概念