首页 > 编程语言 > 详细

排序算法

时间:2020-08-02 21:48:18      阅读:99      评论:0      收藏:0      [点我收藏+]

简述

  数据的排序,是数据结构重要的内容之一, 在软件编程的应用领域必不可少,十分重要。  说到排序会想到:时间复杂度 、空间复杂度 和 排序算法的应用场景, 不同的排序算法有它特定的应用场景,也就是说没有最好的算法,只有最适合的算法。 排序算法涉及的基本操作:元素的比较 、元素的移动, 对于时间和空间的复杂度与它们的次数正相关。为此个人认为,好的排序算法便是能适合特定场景,且元素的比较和移动次数,稳定在可接受范围内。

1. 冒泡 

  在个数为n集合中, 从第1个元素开始,依次与后面的元素比较,将最大值往后交换,向气泡一样,第一轮排序后,最后的元素便是最大的;

依次类推,第2轮冒泡比较,得到n-1位置的元素, 第n-1轮冒泡比较,则整个集合有序。

算法时间复杂度 O(n^2).  冒泡排序有个明显的缺点:每次比较条件满足后,都会有元素的交换操作。

2. 选择

  在个数为n的集合中,第一次从n个元素中选择出最大的元素 ; 第二次选择剩下n-1个元素中最大的元素; 经过n-1次选择后,则得出整个集合元素有序。选择排序与冒泡排序的最大区别是比较后是否有元素位置的交换。

3. 插入

  插入排序的思想是,在个数为n的集合中,已知前 a-1 的元素均有序, 将第 a 个元素 ,从 a-1 位置依次往前比较, 如果比其大,则进行交换,直到找到比其小的元素,即找到插入位置,本轮插入结束。

  算法从第二个元素开始插入运算, 经过 n-1 轮插入运算, 则整个集合有序。

4. 希尔

排序算法

原文:https://www.cnblogs.com/ymxsnsp/p/13417815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!