插入排序

简介: 插入排序

插入排序

基本思想:

直接插入排序是一种简单的插入排序法,其基本思想是:

把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为
止,得到一个新的有序序列

image.png

直接插入排序

当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与
array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移

插入排序.gif

{
    for (int i = 0; i < n-1; i++)
    {

        int end = i;
        int tem = a[end + 1];
        while (end >= 0)
        {
            if (tem < a[end])
                a[end + 1] = a[end--];
            else
                break;
        }
        a[end + 1] = tem;
    }
}

接插入排序的特性总结:

  1. 元素集合越接近有序,直接插入排序算法的时间效率越高
  2. 时间复杂度:O(N^2)
  3. 空间复杂度:O(1),它是一种稳定的排序算法
  4. 稳定性:稳定
相关文章
|
27天前
|
搜索推荐 算法 C语言
插入排序
插入排序是一种简单直观的排序算法,通过构建有序序列,将未排序的数据逐个插入到已排序序列中的适当位置。该算法采用in-place排序,只需常数级额外空间。示例代码展示了如何使用C语言实现插入排序,并对一个整数数组进行排序。
25 6
|
6月前
|
算法 搜索推荐 Java
插入排序就是这么容易
插入排序就是这么容易
33 0
|
7月前
|
搜索推荐 C++
C++插入排序的实现
C++插入排序的实现
|
7月前
|
存储 搜索推荐 算法
插入排序(一)——直接插入排序与希尔排序
插入排序(一)——直接插入排序与希尔排序
51 1
|
7月前
|
搜索推荐 算法 测试技术
排序算法:插入排序(直接插入排序、希尔排序)
排序算法:插入排序(直接插入排序、希尔排序)
76 0
|
搜索推荐
17 插入排序
17 插入排序
38 0
插入排序与希尔排序
插入排序与希尔排序
54 0
|
搜索推荐 测试技术 C++
【插入排序】直接插入排序 与 希尔排序
【插入排序】直接插入排序 与 希尔排序
|
算法
插入排序之直接插入排序
一、基本思想: 依次将每个记录(无序表)插入到一个已排好序的有序表中,得到一个新的,记录增加1的有序表;
插入排序
在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序。   但我们并不能确定待排元素中究竟哪一部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素插入到这个有序序列中来,直到整个序列有序为止。