插入算法主要记住三点:就是算法的核心了

1.要比较的元素拿出来
2.符合条件的元素后移
3.把拿出来的元素放到正确的位置

直接上代码:

#include<iostream>
using namespace std;
//直接插入元素的本质
/*
1.要比较的元素拿出来
2.符合条件的元素后移
3.把拿出来的元素放到正确的位置
49 38 65 97 76 13 27
*/
void StraitInsertSort(int array[],int length)
{int tmp = -1;int k = -1;for (int i = 1; i < length; i++){k = i;//要插入的位置tmp = array[k];//1.要比较的元素拿出来for (int j = i - 1; j >= 0 && array[j]>tmp; j--){array[j + 1] = array[j];//2.满足条件后移k = j;}array[k] = tmp;//3.把拿出来的元素放到正确位置}}
//49 38 65 97 76 13 27
void StraitInsertSort1(int array[], int length)
{int tmp = -1;int j = 0;for (int i = 1; i < length; i++){if (array[i]<array[i - 1]){tmp = array[i];//1.要比较的元素拿出来for (j = i - 1; j >= 0 && array[j]>tmp; j--){array[j + 1] = array[j];//2.满足条件后移}array[j+1] = tmp;//3.把拿出来的元素放到正确位置}}}int main()
{int array[7] = {49,38,65,97,76,13,27};int length = sizeof(array) / sizeof(int);StraitInsertSort1(array, length);for (int i = 0; i < length; i++){printf("array[%d]=%d\n",i,array[i]);}return 0;
}

排序算法之直接插入法相关推荐

  1. 常见排序算法2–直接插入法vs希尔排序法

    常见排序算法–直接插入法vs希尔排序法 首先,我们通过一个例子来了解直接插入算法 例如,对原始数组{15,24,3,49,10}进行直接插入排序(由小到大进行排序) 第一个数15无法比较,第二个数24 ...

  2. 排序算法之简单插入法排序(Java)

    简单插入排序    时间复杂度  O(n*n)  稳定的排序算法 逐一取出元素,在已排好的元素序列中从后向前扫描,插入到适当的位置 部分代码如下: public static void insert_ ...

  3. 排序算法(三)—— 插入法排序算法

    1.插入法排序算法介绍 插入法是一个比较常用的排序方法.插入法排序的思路就是将要排序的数组分两个区间,一个是已排序区间,一个是未排序区间.初始时,默认第一个元素是已排序区间的,后面的所有元素为未排序区 ...

  4. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法

    选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...

  5. c语言排序算法插入法,C语言中冒泡法、选择法、插入法三种常见排序算法分析.doc...

    C语言中冒泡法.选择法.插入法三种常见排序算法分析.doc 一.冒泡法(起泡法) 算法要求用起泡法对10个整数按升序排序. 算法分析如果有n个数,则要进行n-1趟比较.在第1趟比较中要进行n-1次相邻 ...

  6. 排序算法——直接插入法(超详细)

    例如:2,1,8,3从小到大排序 步骤: 1.假设该数组为a[],先看第一个数2,一个数必然有序,所以遍历的时候,n个数只需要遍历n-1次: 2.接着排1,排哪个先将哪个拿出来 tmp=1:(假如此时 ...

  7. 3分钟快速实现:9种经典排序算法的可视化

    作者 | 爱笑的眼睛 来源 | 恋习Python(ID:sldata2017) 最近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感. ▼ 6分钟演示15种排序算法 不知道 ...

  8. 3min利用Python实现9种经典排序算法可视化!(附源代码)

    来源:恋习Python 本文附视频,建议收藏. 本文为你分享实现9种经典排序算法可视化的方法,3分钟即可实现. [导 读]近在某网站上看到一个视频,是关于排序算法的可视化的,看着挺有意思的,也特别喜感 ...

  9. C语言三种常见排序算法

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105112802 三 ...

最新文章

  1. 如何拼通网络ip地址_如何解决IP地址冲突
  2. JavaScript前端框架的思考
  3. TP3.2.3 页面跳转后 Cookie 失效 —— 参考解决方案
  4. post xmlrpc.php,宝塔面板WordPress /xmlrpc.php经常被post恶意数据
  5. php的类装载的步骤,设计PHP自动类装载功能
  6. .NET Core授权失败如何自定义响应信息?
  7. 计算机等级考试考卷试题按钮,全国计算机等级考试一级B模拟试题及答案2011.7...
  8. django model中的DateField()转为时间戳
  9. 美轮美奂渐变炫彩海报素材,荣盛回来!
  10. 蓝桥杯 算法训练 区间k大数查询
  11. JAVA 语言如何进行异常处理,关键字: throws,throw,try,catch,finally分别代表什么意义? 在try块中可以抛 出异常吗?...
  12. 基于JSP的数据库增删改查实现
  13. 【codevs3955】最长严格上升子序列(加强版)
  14. 采用路径模型实现遍历二叉树的方法
  15. ArcGIS Engine打开文件地理数据库
  16. 博弈论中的几个经典问题
  17. 如何用计算机接收光纤网络电视,家里只有一根网络电缆. 电脑和电视如何共享互联网?如何在机顶盒和路由器之间建立连接?...
  18. linux 实时查看cpu温度
  19. 二十四节气-寒露,月斜寒露白,此夕去留心
  20. vue实现二维码批量打印功能

热门文章

  1. python设置默认utf8编码_Python设置默认编码为utf8的方法
  2. aecmap快捷键_ARCMAP快捷键总结
  3. 互联网产品的需求分析
  4. 【性能测试】记一次性能测试
  5. JetBrains全系列破解
  6. 怎么给QT工程ui添加图片
  7. MAC VScode 强制重启后保存的代码全没了
  8. html 倒计时特效,JS节日倒计时特效(精确到毫秒)
  9. 如何在微信环境中点击链接关注微信公众号
  10. 只狼服务器维修或停机,只狼存档怎么替换 只狼存档损坏修复方法介绍_游侠网...