排序算法系列1--简单排序(选择,冒泡,直接插入)

Posted chentianwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法系列1--简单排序(选择,冒泡,直接插入)相关的知识,希望对你有一定的参考价值。

排序是数据处理中十分常见的操作,现代高级语言都有现成的n种排序算法。但了解它们的代码,对计算机思维有帮助。

简单选择排序

每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。

无论数组原始排列如何,比较次数都不变;变的是交换次数。完全有序的情况下无需交换移动元素,最差情况下(把数组倒序改成正序),交换次数最多: n-1。

时间复杂度是n2

冒泡排序 

以前的博文:https://www.cnblogs.com/chentianwei/p/8244728.html

比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。

n个数,进行n-1轮比较。 每轮归位1个最大/最小数,已经归位的数下一轮无需再比较。

冒泡的比喻就是:每轮把最大/最小值放到数组的最后。好像冒气泡。

时间复杂度是n2

直接插入排序

直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。

简单插入排序在最好情况下,需要比较n-1次,无需交换元素,时间复杂度为O(n);在最坏情况下,时间复杂度依然为O(n2)。但是在数组元素随机排列的情况下,插入排序还是要优于上面两种排序的。

时间复杂度依然为n2

 

 

 

 

 

 

 

参考:https://www.cnblogs.com/chengxiao/p/6103002.html

以上是关于排序算法系列1--简单排序(选择,冒泡,直接插入)的主要内容,如果未能解决你的问题,请参考以下文章

插入排序(直接插入排序希尔排序);交换排序(冒泡排序快速排序);选择排序(简单选择排序堆排序);归并排序和基数排序;基于关键词比较的排序算法下界分析

图解排序算法之3种简单排序(选择,冒泡,直接插入)

图解排序算法之3种简单排序(选择,冒泡,直接插入)

七种基本排序算法(希尔排序,直接插入排序,冒泡排序,快速排序,简单选择排序,归并排序,堆排序)

图解排序算法之3种简单排序(选择冒泡直接插入)

图解排序算法之3种简单排序(选择,冒泡,直接插入)