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. JavaEE 6 将包括 JSR330 和 JSR299
  2. PyTorch随笔-4
  3. jquery监听向上向下滑动,滑动执行操作
  4. Source Insight3.x注册码
  5. 前端页面常用代码参考
  6. 氚云 表单前端代码-提交机制
  7. 图像检索算法 TODO
  8. 【并发编程】CPU cache结构和缓存一致性(MESI协议)
  9. 项目经理的文档提升能力
  10. 什么牌子的蓝牙耳机耐用?类似airpods pro的降噪耳机推荐
  11. 高中数学数列技巧解题秒杀视频:数列小题秒杀技巧
  12. 图形聚类算法:MCL
  13. 医生学python_Python微医挂号网医生数据抓取
  14. CSDN-markdown编辑器帮助文档
  15. Threadx 线程调度
  16. css 滤境的详细介绍
  17. (遇到问题)(已解决) raise NotImplementedErrorNotImplementedError
  18. Java打印输出:bt磁力天堂
  19. 日期时间工具(dayjs)的使用
  20. 2022年 安全智能分析技术白皮书 模型开发

热门文章

  1. 简单理解三极管做开关管时的应用
  2. 判断当前时间为本月的第几周,本周的第几天
  3. 浅谈屏幕适配 dp dip sp dpi ppi px sp
  4. RuntimeError: mat1 and mat2 shapes cannot be multiplied (192x64 and 4x3)
  5. C/C++基础题045.PUM
  6. Google Drive 转存别人分享的文件到自己的网盘
  7. 软件工程大作业:自动售货机系统
  8. 小米手机第三方卡刷软件_小米Max卡刷教程_小米Max用recovery刷第三方系统包
  9. 火车没有方向盘操纵转向,如何实现换轨?看完涨知识了
  10. 零售行业新渠道,效率居然这么高?