1、插入法排序算法介绍

插入法是一个比较常用的排序方法。插入法排序的思路就是将要排序的数组分两个区间,一个是已排序区间,一个是未排序区间。初始时,默认第一个元素是已排序区间的,后面的所有元素为未排序区间。然后依次取未排序区间的元素,在已排序区间找到合适的位置插入,直到排完所有数据。

比如对一个包含5个元素的数组5、2、4、3、1进行排序,采用插入法时,排序的步骤如下所示。

2、插入法代码示例

下面我们采用c语言编写一段代码来实现上面的5个数的排序,代码如下所示。

#include <stdio.h>void main()
{int i,j;int data[5]={5,2,4,3,1};int temp;printf("Data: ");for(i=0;i<5;i++)printf("%d ",data[i]);printf("\n");for(i=1;i<5;i++){temp = data[i];  for(j=i-1;j>=0;j--){           if(temp < data[j])data[j+1]=data[j];elsebreak;}data[j+1] = temp;}printf("Final data: ");for(i=0;i<5;i++)printf("%d ",data[i]);printf("\n");}

编译代码并运行,执行结果如下所示

Data: 5 2 4 3 1
Final data: 1 2 3 4 5 

排序算法(三)—— 插入法排序算法相关推荐

  1. 【算法三】排序算法之冒泡排序

    冒泡排序(Bubble Sort):是一种简单的排序算法,也是一种稳定的排序算法.其实现原理是:依次比较两个相邻的元素,当该对元素顺序不正确时就进行交换,从左到右一轮遍历得到一个最值:重复此步骤,直到 ...

  2. Java学习--排序算法之插入法排序

    算法策略:按顺序读入数组内的元素,从后往前的与已有元素比较大小,插入到前一位比自己小并且后一位比自己小的位置. 数据结构:常量.变量和数组: 控制结构:顺序结构.有界循环结构和条件循环结构. 算法流程 ...

  3. java排序算法总结_排序算法总结及Java实现

    1. 整体介绍 分类 排序大的分类可以分为两种,内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.主要需要理解的都是内排序算法: 内排序可以分为 ...

  4. C语言 数组排序 – 插入法排序 - C语言零基础入门教程

    目录 一.简介 二.数组插入法排序原理 三.数组插入法排序实战 四.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 一.简介 经过前面的学习, ...

  5. JVM 的三色标记算法详解

    本文来说下关于JVM 的三色标记算法. 文章目录 三色标记算法概述 引用计数&可达性分析 分代收集 什么是卡表 卡表的问题 写屏障 伪共享 三色标记算法 基本算法 三色标记算法缺陷 多标 漏标 ...

  6. 面试前你必须知道的三个排序算法

    今天分享的是三种排序算法,在面试.实际编程中经常会碰到和使用到的,我会带领大家从分析排序算法技巧上以及代码实现上全面理解这一知识点的掌握. 一.如何分析一个「排序算法」 1. 执行效率 ① 最好.最坏 ...

  7. Java学习 第三章 数组(三)排序算法

    ** Java学习 第三章 数组(三)排序算法 ** 主要内容:排序算法.排序算法横向比较.Arrays工具类的使用.数组常见异常 1.数组中涉及到的常见算法:排序算法 1.1 排序算法分类:内部排序 ...

  8. 1-5 三整数排序(算法竞赛入门经典)

    书上关于三整数排序的这一问题,完全是为了让初学者去思考分支情况的,并且也要去考虑三个数其中相等的情况. 其实最后一种思想正是后面要学习的排序算法中的选择排序的一种体现. 源码如下: #include& ...

  9. 数据结构与算法(三) 排序算法(代码示例)

    数据结构与算法三 排序算法 1. 选择排序 2. 插入排序 3. 冒泡排序 4. 归并排序 5. 快速排序 6. 希尔排序 7. 堆排序 总结 1. 选择排序 选择排序的基本原理: 对于未排序的一组记 ...

最新文章

  1. 联邦学习应用思考:需求还是方法?
  2. 实时检测神经振荡可实现行为相关的神经反馈
  3. [内核编程] 内核环境及其特殊性,驱动编程基础篇
  4. linux vi命令 置顶,[置顶] Linux vi命令 创建文件
  5. python三角函数拟合_使用python进行数据拟合最小化函数
  6. Nodejs课堂笔记02
  7. logrus 输出多个文件_Logrus源码阅读(1)基本用法
  8. MFC 对Button控件的重绘方法(多种)
  9. 将页面强制保持在所属框架中
  10. KeyCloak实现单点登录说明
  11. Cotherm 多物理场耦合方案
  12. BBRPlus魔改版本
  13. photoshop去眼袋
  14. 面向对象的正式与非正式解释!
  15. 解决bug 起止时间相同 搜索不到相关数据
  16. Muli3D 5 判断点与面的关系
  17. 最小二乘法曲线拟合原理与实现
  18. 采用RNN为小Baby起个英文名字by SixInNight
  19. element表格里面放图片_Element ui表格展示图片问题
  20. PPT模板简约风格范本(2019精选推荐),21套精美主题免费下载

热门文章

  1. RAID5容量计算方式:单块磁盘容量*(n-1)
  2. 训练好的vgg报错RuntimeError:mat1 and mat2 shapes cannot be multiplied(512*49 and 25088*4096)
  3. 转载:用聚宽实现一个多因子策略
  4. 微信小程序获取二维码scene报错40129
  5. excel自动填充脚本(awk)
  6. 52函数零点或方程根的个数讨论
  7. 深入理解图优化与g2o:g2o篇
  8. 功不唐捐——《程序员职场第一课》后记
  9. 页面图片 “懒加载”
  10. Kubernetes pod的生命周期