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

排序算法-简单插入排序

作者: 来个Android小哥 | 来源:发表于2021-08-31 12:02 被阅读0次

前言:排序是现在程序员的必备技能,是很多公司的面试必考点,不管是做移动端,后端开发,排序是绕不过的,众生平等。学习其排序的思想往往能解决不同类型的问题,所以静下心来,研究一下不同的排序算法,算是对自己有一个提升。

排序概述:排序就是将一组对象按照某种逻辑顺序重新排列的过程。

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

本文对简单插入排序走一个解析:

简单插入排序步骤:

1.对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入

2.为了给要插入的元素腾出空间,我们需要将插入位置之后的已排序元素再都向后移动一位

注:插入排序所需要的时间取决于输入中元素的初始顺序,例如,对于一个很大且其中的元素已经有序或者接近有序的数组进行排序将会比对随机顺序的数组或是逆序数组进行排序要快得多。总的来说,插入排序对于部分有序的数组十分高效,也很适合小规模数组。

代码举例:

对一个数组进行排序:(86,11,77,23,32,45,58,63,93,4,37,22)

int[] array = {86,11,77,23,32,45,58,63,93,4,37,22};

排序代码展示: 

简单插入排序

调用sort方法后打印如下:

打印结果

对该案例进行分析:

(1) 默认第0个位置上的是排号序的 preIndex = 0; 那么待排序的就是在preIndex + 1个位置上。currentValue = 11在while循环中判断待排序的11是小于86的且preIndex >=0 进入while循环,将11的这个位置变成86. preIndex--后小于0,循环结束。再对第0个位置赋值为11.这样就完成了一次排序。

             排序结果:【11,86,77,23,32,45,58,63,93,4,37,22】

(2) preIndex = 1 开始  那么待排序的就是在preIndex + 1个位置上。currentValue = 77在while循环中判断待排序的77是小于86的且preIndex >=0 进入while循环,将77的这个位置上变成86,随后preIndex--。则preIndex = 0,判断77是大于11的,则跳出while循环。第1个位置上赋值为77,这样就完成了第二次排序。

             排序结果:【11,77,86,23,32,45,58,63,93,4,37,22】

........循环直至结束

 打印每个步骤的数组:

至此简单插入排序就到这里讲解结束了,细看的话其实一点也不复杂。

相关文章

  • 插入排序

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

  • 插入排序算法实现

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

  • 算法-插入排序

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

  • JavaScript的排序算法——插入排序

    插入排序(Insertion Sort) 插入排序是一种简单的排序算法,这种算法可以一次构建最终排序的数组(或数列...

  • 九种排序算法(重要!!)

    分类:(九种排序算法) 1、插入排序:直接插入排序、二分插入排序、希尔排序; 2、选择排序:简单选择排序、堆排序 ...

  • 【排序算法】插入排序、快速排序以及归并排序

    一、插入排序 插入排序(Insertion sort)是一种简单直观且稳定的排序算法。 算法思维 每次将一个待排序...

  • 插入排序python实现

    插入排序算法介绍 摘自维基百科: 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作...

  • 排序之插入排序

    算法 最简单的排序算法之一是插入排序。插入排序由N-1趟排序组成。对于p=1到N-1趟,插入排序保证从位置0到位置...

  • 算法

    1.常用的八个基本排序算法 -前言:希尔排序和直接插入排序属于插入排序算法,简单选择排序和堆排序属于选择排序,冒泡...

  • 数据结构算法全解析之排序算法性能比较与实际应用

    1. 算法重温 下面我们将带大家重新熟悉下排序算法。 插入排序 插入排序是一种较为简单的排序算法,它的基本思想是通...

网友评论

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

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