美文网首页
【11.14】直接插入排序

【11.14】直接插入排序

作者: 江北01 | 来源:发表于2016-11-14 13:00 被阅读25次

基本思想为把数组a中n个元素看成包含一个元素a[0]的有序表及其余元素组成的无序表
每次从无序表中选出第一个元素,插入到有序表合适位置,插入次数为n-1次,完成排序。

核心算法思路如下:
> 无序表每次a[i]先和前面一个数据a[i-1]比较,如果a[i] > a[i-1]
> 说明a[0…i]也是有序的,无须调整。否则就令j=i-1,temp=a[i]。
> 然后一边将数据a[j]向后移动一边向前搜索,
> 当有数据a[j]<a[i]时停止并将temp放到a[j + 1]处。
详细实现代码如下:

捕获.PNG
     * 再对将a[j]插入到前面a[0…j-1]的有序区间所用的方法进行改写
 * 用数据交换代替数据后移。如果a[j]前一个数据a[j-1] > a[j],
 * 就交换a[j]和a[j-1],再j--直到a[j-1] <= a[j]。
 * 这样也可以实现将一个新数据新并入到有序区间。

详细实现代码如下:

捕获2.PNG

完全代码及测试结果如下:

捕获4.PNG 捕获3.PNG

不足之处及改进欢迎指正!

相关文章

  • 【11.14】直接插入排序

    基本思想为把数组a中n个元素看成包含一个元素a[0]的有序表及其余元素组成的无序表每次从无序表中选出第一个元素,插...

  • 插入排序

    一、直接插入排序 二、折半插入排序

  • 【数据结构】【C#】013-插入类排序:🥇直接插入排序(稳定)

    插入排序:直接插入排序(稳定) 【 算法思想 】 直接插入排序是一种最基本的插入排序方法,其基本操作是将第 i 个...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

  • 常用算法

    插入排序 包括直接插入排序和希尔插入排序 直接插入排序 将一个记录插入到已经排序好的有序表中。 sorted数组的...

  • 算法(排序)

    一、内部排序 1、插入排序—直接插入排序(Straight Insertion Sort) 2、插入排序—希尔排序...

  • 直接插入排序

    //直接插入排序

  • iOS算法

    排序方法 选择排序:直接选择排序、堆排序。 交换排序:冒泡排序、快速排序。 插入排序:直接插入排序、二分法插入排序...

  • 几种实用的简易的排序算法

    也是面试题 一、插入排序 1.插入排序—直接插入排序(Straight Insertion Sort) 思路 遍历...

  • 2.1-插入排序-直接插入

    参考链接 插入排序:直接插入排序(Straight Insertion Sort) 白话经典算法系列之二 直接插入...

网友评论

      本文标题:【11.14】直接插入排序

      本文链接:https://www.haomeiwen.com/subject/fgshpttx.html