美文网首页
十大排序算法——插入排序

十大排序算法——插入排序

作者: 瓦西大人 | 来源:发表于2018-07-18 14:18 被阅读0次

Java实现代码:

public class Insert {
    public static void main(String[] args) {
        int[] array = new int[]{2, 3, 5, 8, 9, 0, 4, 5, 1, 6, 8, 7};
        sort(array);
        System.out.println(Arrays.toString(array));
    }
    private static void sort(int[] array) {
        int n = array.length;
        for (int i = 1; i < n; i++) {
            for (int j = i ; j >0 ; j--) {
                if (array[j] < array[j - 1]) {
                    int temp = array[j];
                    array[j] = array[j - 1];
                    array[j-1] = temp;
                }
            }
        }
    }
}

C实现代码:

//从小到大排n个个数
void Insert() { 
        //循环从第二个数组元素开始,因为arr[0]作为最初已排序部分 
        for(int i=1;i<n;i++){ 
        //temp标记为未排序第一个元素 
                int temp=arr[i];
                int j=i-1; 
                while (j>=0 && arr[j]>temp){ 
/*将temp与已排序元素从小到大比较,寻找temp应插入的位置*/ 
                          arr[j+1]=arr[j]; 
                          j--; 
              } 
                       arr[j+1]=temp; 
     } 
} 

最优复杂度:

当输入数组就是排好序的时候,复杂度为O(n),而快速排序在这种情况下会产生O(n^2)的复杂度。

最差复杂度:

当输入数组为倒序时,复杂度为O(n^2)

与冒泡、选择相同,适用于排序小列表 ;若列表基本有序,则插入排序比冒泡、选择更有效率。

相关文章

  • Algorithm -- 排序算法

    单链表十大经典排序算法冒泡排序选择排序插入排序归并排序快速排序堆排序计数排序桶排序 1. 十大经典排序算法 十大经...

  • 十大排序算法

    十大排序算法 1.插入排序 2.折半插入排序算法 3.选择排序 4.冒泡排序 5.谢尔排序 6.快速排序 7.堆积...

  • 排序算法概述

    十大排序算法:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序、希尔排序、计数排序,基数排序,桶排序 算法...

  • 十大排序算法

    算法说明 十大排序算法分别是:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序...

  • 算法-插入排序

    算 法:插入排序算法时间复杂度: 插入排序算法描述 插入排序伪代码 插入排序实现 插入排序算法概述 插入排...

  • 数据结构与算法-面试准备

    1、排序 冒泡排序,直接排序,插入排序十大经典排序算法最强总结 - hellozhxy的博客 - CSDN博客 快...

  • 数据结构和算法排序(三)

    常见十大排序算法: 冒泡排序、选择排序、插入排序、快速排序、堆排序希尔排序、归并排序、计数排序、基数排序、桶排序 ...

  • 十大经典排序算法(java实现)

    前言 本文我们将以java代码实现十大经典排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序...

  • c算法O(n)^2(一)

    选择排序 插入排序 优化插入排序算法

  • python 冒泡排序和选择排序算法

    插入排序算法 冒泡排序算法

网友评论

      本文标题:十大排序算法——插入排序

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