1.概述

原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序,杂度为O(n2)。

步骤:遍历从第二个元素开始,比较前面的元素是否大于该元素,大于的话,交换位置。依此类推。

理解:手上有一副牌,要按照从小到大的顺序排序,先把第2张跟第一张进行比较,如果第一张大于第二张就调用。再拿第3张牌跟前面两张进行比较,先比较第二张,如果大于换位置,再比较第一张。再拿第4张牌跟前面3张从右往左进行比较,其它牌依此类推。

2.示例

        //插入排序public static void InsertionSort(int[] nums){for (int i = 1; i < nums.Length; i++){int t = nums[i];int j = i;while ((j > 0) && (nums[j - 1] > t)){nums[j] = nums[j - 1];//交换顺序   --j;}nums[j] = t;}}// int[] list = new[] { 4, 1, 2, 7, 9, 0, 8 };//  Sorter.InsertionSort(list);

转载于:https://www.cnblogs.com/qqlin/archive/2013/02/25/2931772.html

【经典算法】第三回:插入排序相关推荐

  1. 排序算法lowb三人组-插入排序

    排序算法lowb三人组-插入排序 def insert_sort(li):for i in range(1, len(li)): # i表示摸到的牌的下标tmp = li[i] # 摸到的牌j = i ...

  2. 机器学习经典算法(三)--指数加权平均

    机器学习经典算法(三)–指数加权平均 指数加权平均(Exponentially Weighted Averages)是一些改进梯度下降法重要理论,如上篇博文梯度下降法(2)提到的动量梯度下降法,RMS ...

  3. 经典算法系列三----堆排序

    花了些时间好好看了堆排序的内容,代码也敲了,现在来总结一下. 为了说明白点,有些图片我就从网上截取了. 首先是堆的概念. 数据结构中的堆,又叫二叉堆 一般用数组来表示堆得结构,或者说是把堆数组化.举个 ...

  4. 经典算法-(三)帕斯卡三角形(杨辉三角形)

    杨辉三角,是二项式系数在三角形中的一种几何排列.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年. 简介: 杨辉三角 ...

  5. 计算机算法讲解的ppt,智能计算几种经典算法解析.ppt

    <智能计算几种经典算法解析.ppt>由会员分享,可在线阅读,更多相关<智能计算几种经典算法解析.ppt(20页珍藏版)>请在装配图网上搜索. 1.智能计算几种经典算法解析,制作 ...

  6. 三白话经典算法系列 Shell排序实现

    山是包插入的精髓排序排序,这种方法,也被称为窄增量排序.因为DL.Shell至1959提出命名. 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个"增量"的元 ...

  7. 经典算法之折半插入排序法

    活动地址:21天学习挑战赛 文章目录 一.算法 1.算法概述 2.算法步骤 二.算法实践 1.Java代码 2.执行结果 三.复杂度分析 1.时间复杂度 2.空间复杂度 一.算法 1.算法概述 直接插 ...

  8. 人脸识别三种经典算法总结

    一.Eigenface特征脸识别 (PCA) 人脸识别算法-特征脸方法(Eigenface)及python实现 https://blog.csdn.net/u010006643/article/det ...

  9. 【排序算法(三)】直接插入排序及其改进

    基本思想 直接插入排序是一种简单且有效的比较排序算法,在每次迭代过程中选取未排序序列的第一个元素,并将该元素插入左侧已排序序列的正确位置,重复该过程,直到所有输入元素都被选择一次. 对于数组 {3, ...

  10. JAVA经典算法大全

    JAVA经典算法大全 from http://java-mans.iteye.com/blog/16457031.河内之塔 2.Algorithm Gossip: 费式数列. 3.巴斯卡三角形 4.A ...

最新文章

  1. Android Layer List 使用实现实例
  2. iOS - OC Block 代码块
  3. ArrayUtils使用详解
  4. 【Leetcode】组合、排列、子集、切割(回溯模板和去重方法)
  5. Java版世界时钟示例
  6. C语言学习之求∑n!(即求1!+2!+3!+...+20!)
  7. 解析JVM内存区域组成
  8. 160 - 18 Brad Soblesky.1
  9. 10.8.8.8柠檬wifi网页登录_基于企业邮箱进行wifi实名认证的方案
  10. 【LeetCode】241. Different Ways to Add Parentheses
  11. media recovery oracle,Oracle非归档模式MediaRecovery错误之--ORA-26040
  12. 软件实习周软件设计报告
  13. 陶哲轩实分析 习题6.3.3
  14. CDN的加速域名、源站地址与回源host之间的关系
  15. 从打字机效果的 N 种实现看JS定时器机制和前端动画
  16. 【串行通信中的】同步通信和异步通信的区别
  17. Linux系统大约多大,谁来说说linux系统一般多大
  18. stm32的rxne和idle中断_stm32 USART_IT_IDLE中断 一帧数据
  19. 基于node的cmd迷你天气查询工具
  20. CVE-2020-3535:Cisco Webex Teams windows客户端dll劫持漏洞分析

热门文章

  1. IIS启用.net2.0
  2. 解决windows 2003打了系统补丁后远程桌面不能用
  3. 编程修养 阅读笔记三
  4. android 颜色选择类
  5. Error - ORA-26028
  6. RabbitMQ使用代码示例
  7. Mac上以太坊Geth环境安装
  8. Linux curl命令简介
  9. English - even though和even if用法解析
  10. zookeeper使用简介及注意事项