![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
十大排序算法
文章平均质量分 71
程序员 Hasity
个人博客:www.52algo.com
展开
-
图解十大排序五---快速排序
今日我们来介绍我们所要讲的第三种时间复杂度为 O(nlog2 n)的排序方法,它就是快速排序,同冒泡排序一样,快速排序也属于交换排序,通 过元素之间的比较和交换位置来达到排序的目的。 不同的是,冒泡排序在每一轮中只把1个元素冒泡 到数列的一端,而快速排序则在每一轮挑选一个 元素,并让其他比它大的元素移动到数列一边,比它 小的元素移动到数列的另一边,从而把数列拆解成两 个部分。通俗点来说 :通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排原创 2022-06-03 23:31:13 · 78 阅读 · 0 评论 -
图解十大排序四---归并排序
4.1 前文回顾在上篇文章中给大家介绍了第一种时间复杂度为 O(nlog2 n)的排序方法,那么今日就让我们来学习第二种,在介绍之前,大家还记得选择排序嘛,和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。归并排序 是建立在归并操作上的一种有效的排序算法。该算法是采用分治的思想。归并排序是一种稳定的排序方法。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一原创 2022-06-02 23:17:54 · 201 阅读 · 0 评论 -
图解十大排序三---希尔排序
3.1 前文回顾在前俩篇文章中,给大家介绍了一下时间复杂度为O( n2 )的排序方法,大家还记得它们是哪几种排序吗?让我们回顾一下那还有时间复杂度比O( n2 )更低的排序算法吗?今天就让我们来介绍一下希尔排序是一种插入排序(如果大家忘记插入排序的话可以回去看上一篇文章),它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。大家想一想,在什么情况下,插入排序的工作量会比较小呢?让我们来看一个例子 给定无序数组 : [3, 5, 2, 6, 4, 8原创 2022-06-01 23:13:50 · 128 阅读 · 0 评论 -
图解十大排序二------选择排序与插入排序
图解十大排序2.1 前文回顾在上篇文章中,给大家介绍了一下冒泡排序,大家还记得冒泡排序的时间复杂度吗? 让我们来回顾一下冒泡排序是一种稳定排序,值相等的元素并不会打乱原本的顺序。由于该排序算法的每一轮都要遍历 所有元素,总共遍历(元素数量-1)轮,所以平均时间复杂度是O(n 2)。最佳情况:T(n) = O(n)最差情况:T(n) = O(n2)平均情况:T(n) = O(n2)那么除了冒泡排序之外,还有俩种排序算法的时间复杂度也是O(n 2),其中一种是选择排序,一种是插入排序。2原创 2022-05-31 20:45:01 · 82 阅读 · 0 评论 -
你真的会冒泡排序吗
图解十大排序1.1引言 在我们当下的生活中,排序随处可见,当每一次考试,老师都会按照成绩多少来排名,排队的时候,同学们又会按照学号顺序进行排队 在编程的世界中,应用到排序的场景也比比皆 是。例如当开发一个学生管理系统时,需要按照学号 从小到大进行排序;当开发一个电商平台时,需要把 同类商品按价格从低到高进行排序;当开发一款游戏 时,需要按照游戏得分从多到少进行排序,排名第一 的玩家就是本场原创 2022-05-30 22:52:46 · 174 阅读 · 0 评论