插入排序就是一直向后读,第一个数,加入前面已经有序的一串数里。

而插入排序是笨笨的一个个向前找的,可以优化一下,用二分查找找到合适的位置。

插入排序代码

void Insertsort2(int a[], int n)  
{  
    int i, j;  
    for (i = 1; i < n; i++)  
        if (a[i] < a[i - 1])  
        {  
            int temp = a[i];  
            for (j = i - 1; j >= 0 && a[j] > temp; j--)  
                a[j + 1] = a[j];  
            a[j + 1] = temp;  
        }

}

所以只需要理解一下二分查找就可以了

比如一个串数,已经有序

分成对等(尽量)两块

注意3个数 第一块末端 第二块前端 你手上的数

进行一个大小的比较 考虑在哪块区间就可以了

如果最后只有3个数了,会拆分成2个数+1个数

其实也是一样。。。

如果最后只有2个数了,会拆分成1个数+1个数

其实也是一样。。。

排序算法:二分排序(插入排序+二分查找)相关推荐

  1. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  2. C语言排序算法 选择排序 插入排序 快速排序 qsort实现快排 堆排序

    常见排序算法 选择排序 选择排序(Selection sort)是一种简单直观的排序算法. 它的工作原理如下. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素 ...

  3. php代码编写直接插入排序算法,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析...

    本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...

  4. 插入排序 php,PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析

    本文实例讲述了PHP排序算法之直接插入排序(Straight Insertion Sort).分享给大家供大家参考,具体如下: 算法引入: 在这里我们依然使用<大话数据结构>里面的一个例子 ...

  5. 插入排序java_排序算法之直接插入排序Java实现

    排序算法之直接插入排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb 选择排序:http://t.cn/hros6e 插入排序:ht ...

  6. 排序算法(2)直接插入排序

    排序算法(2)直接插入排序 原理:将数组中的所有元素依次和前面的已经排好序的元素相比较(依次)  ,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过. 代码实现: void InsertS ...

  7. 排序算法---选择排序(java版)

    简单选择排序 原理 选择排序(Selection Sort)的原理有点类似插入排序,也分已排序区间和未排序区间.但是选择排序每次会从排序区间中找到最小的元素,将其放到已排序区间的末尾. 简单选择排序执 ...

  8. JavaScript实现十种经典排序算法(js排序算法)

    冒泡排序算法 冒泡排序(Bubble Sort)是一种简单直观的排序算法.冒泡排序算法的步骤描述如下: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一 ...

  9. 经典排序算法 - 希尔排序Shell sort

    经典排序算法 - 希尔排序Shell sort 希尔排序Shell Sort是基于插入排序的一种改进,同样分成两部分, 第一部分,希尔排序介绍 第二部分,如何选取关键字,选取关键字是希尔排序的关键 第 ...

  10. 经典排序算法 - 耐心排序Patience Sorting

    经典排序算法 - 耐心排序Patience Sorting 这个排序的关键在建桶和入桶规则上 建桶规则:如果没有桶,新建一个桶;如果不符合入桶规则那么新建一个桶 入桶规则:只要比桶里最上边的数字小即可 ...

最新文章

  1. 1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子
  2. 全息技术“量子飞跃”或彻底改变成像技术
  3. ios第三方库和工具类
  4. ICS汇编学习笔记——8086的指令系统
  5. Android获得图片资源的三种方式
  6. SQL建表公共字段脚本
  7. mysql的程序怎么升级成mysqli_如何将mysql更改为mysqli?-问答-阿里云开发者社区-阿里云...
  8. sql 临时表_深度分析 | JDBC与MySQL临时表空间的分析
  9. android-tv
  10. 《并行计算的编程模型》一3.1 引言
  11. shell脚本ssh登录并执行命令_Linux批量免密码SSH登录案例
  12. Centos系统设置
  13. ExecutorService中submit和execute的区别
  14. 中标麒麟的下载和安装
  15. python调用讯飞付费版语音转写
  16. Java后台给PDF加水印并且合并多个PDF文件
  17. C盘压缩,电脑无法正常启动的解决方法?
  18. 我参加NVIDIA Sky Hackathon 训练文件的路径设置
  19. ADSL modern 的常用密码
  20. Android 耳机驱动知识

热门文章

  1. 金蝶KIS15.1专业版注册流程和企业认证流程
  2. 用Binary Viewer查看H264文件中的每一帧
  3. 电脑中了“魔鬼波”病毒 冲击波补丁
  4. vue电子数字、时钟数字、的字体引入和使-详细步骤
  5. myeclipse安装使用svn
  6. armeabi-v7a arm64-v8a armeabi x86 x86_64区别
  7. 面经-软件测试面试常见面试题全套合集系列4-5
  8. 固高运动控制卡学习8 --高速硬件捕获
  9. python用来正常显示中文标签 plt.rcParams[‘font.sans-serif‘] = [‘SimHei‘]错误
  10. Fortran入门教程(一)——引入篇