美文网首页
算法-插入排序

算法-插入排序

作者: wangliang0209 | 来源:发表于2016-10-08 15:49 被阅读0次

       今天看算法导论,觉得排序算法真的很重要,当然可能在应用层开发的时候根本体现不出来,因为sdk给我们封装好了sort方法,所以没有特殊需求的情况下,我们根本无需关心。但是好的算法基础决定你能走多远,所以我还是回头看一看。

 插入排序

插入排序,从第二个数开始和它之前的数做比较,如果比前边的小就换位,所以完成一个数比较时候前边的总是已经排好顺序的。

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

     int key = i;

     int data = a[key];

     while(key > 0 && data < a[key -1]) {

           a[key] = a[key - 1];

           key --;

     }

     a[key] = data;

换一种表现形式

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

    for(int j=i;j > 0 && a[j] < a[j-1];j--) {

          swap(a, j, j-1);

    }

}

时间复杂度 最坏情况 1 + 2 + ... + n-1 = n ^2/ 2  即O(n^2)

最好的情况O(n)已经有序

待续

相关文章

  • 算法-插入排序

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

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

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

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

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

  • Chapter 2 Foundation of Algorith

    Chapter 2 插入排序 线性查找 选择算法 归并排序算法 二分查找算法 冒泡排序 插入排序 循环不...

  • 算法入门——插入排序、快速排序

    上篇文章学习了算法入门——冒泡排序、选择排序,这篇文章我们学习算法入门——插入排序。 插入排序 插入排序是在一组列...

  • 插入排序算法实现

    排序算法是最常见,最基础的算法,作者文集中记录了两种排序算法(插入排序,归并排序) 插入排序算法实现很简单直接,附...

  • 插入排序

    插入排序 插入排序(Insertion-Sort)是一种简单直观的排序算法。排序算法(英语:Sorting alg...

  • 排序算法(三)折半插入排序算法

    排序算法(三)折半插入排序算法 1.基本概念  折半插入排序(Binary-Insertion-Sort)是对插入...

  • 《算法4》2.1 - 插入排序算法(Insertion Sort

    排序算法列表电梯: **选择排序算法:详见 Selection Sort ** 插入排序算法(Insertion ...

  • 排序

    本文记录几个基础的排序算法。排序算法分为插入排序、交换排序、选择排序等几大类。 插入排序 1. 直接插入排序 O(...

网友评论

      本文标题:算法-插入排序

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