插入排序:最直观的排序算法

1.算法的简单原理介绍 插入排序(Insertion-Sort)是一种最简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置…

插入排序:最直观的排序算法插图

插入排序:最直观的排序算法插图(1)

1.算法的简单原理介绍

插入排序(Insertion-Sort)是一种最简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。也就是说,他是基于比较的排序。就是通过比较数组中的元素,看谁大谁小,根据结果来调整元素的位置。因此,对于这类排序,就有两种基本的操作:

①比较操作; 

②交换操作。

2.插入排序的实现步骤

  1. 将第0个元素开始,该元素可以认为已经排序完成;

  2. 从下一个元素开始,从排序完成的元素开始由后往前扫描;

  3. 如果已经排序完成的元素大于新元素,则新元素前移;

  4. 重复3的步骤,直到已排序元素小于等于新元素;

  5. 将新元素插入到该元素后面;

  6. 重复以上步骤(2-5);

以上文字读起来可能比较难以理解,通过下面的动态图可以更好的理解。

    插入排序:最直观的排序算法插图(2)

    简言之,就是从前往后,将小数据元素往前移。

    3.插入排序的程序实现

    插入排序:最直观的排序算法插图(3)

    举例分析如下:

    以5,3,2,3排序过程如下:

    —————————————————————————————————————

    第一趟:3 5 2 3

    第0个元素5认为是排序完成的,从第1个元素开始,第1个元素和第0个元素比较,第1个元素小,所以前移;

    —————————————————————————————————————

    第二趟:2 3 5 3

    第2个元素2跟第1个元素5比较,小,所以第二个元素前移,再与第0个元素比较,还小,所以再前移;

    —————————————————————————————————————

    第三趟:2 3 3 5

    第3个元素,与第2个元素比较,小,所以第三个元素前移,再与前一个元素比较,不小于,所以不动,完成排序。

    —————————————————————————————————————

    4.最后总结:

    插入排序,就是玩儿牌的过程,在抓牌的时候,放牌的过程中就完成了一次排序,会打牌的朋友可以回想一下这个过程。

    推荐阅读 :

    冒泡排序,经典的排序算法

    插入排序:最直观的排序算法插图(4)

    免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

    作者: soufei

    为您推荐


    Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115