直接选择排序流程图_I分享 | 排序算法干货~

本文探讨了排序算法的重要性,介绍了常见的冒泡排序、快速排序,并提到不常用的Bogo排序。通过理解这些算法,可以提升编程思维和效率优化能力。
摘要由CSDN通过智能技术生成

排序

一个对于程序员而言历史性的话题

3b2ea7476b6a5ee148766d323bb631dc.png

目前已经有了非常多非常成熟的排序算法,虽然可能在ACM比赛中并不会直接让你去实现一个排序,但是你在今后面试,甚至是和别人吹牛的时候,口述、手撕一个排序算法,岂不是瞬间逼格高了一截。下面来分享几种常用的算法~

冒泡排序

4fb4c8f72939ddeb4f168c3576dfda17.gif

大学中学习C语言的第二个排序算法

每次选择两个元素进行比较,按照需求进行交换,循环n次(n为元素总数),这样小(或者大)的元素会不断“冒泡”到前面来,算法分析时间复杂度为O(n²),在C语言中的代码如下:

05541c846f6d742d0fa1b986bea4bfac.png

快速排序

2610408a57ff69c7beb2b4a7d36b3bd4.png

简称快排,时间复杂度不固定,如果在最坏情况下(元素刚好都是反向的)速度比较慢,和选择排序一个效率时间复杂度达到O(n²),但是在比较理想的情况下时间复杂度为O(nlogn)。快排每次选择一个元素并且将整个数组以这个元素分为两部分,根据需求不同,元素选择一般会分为:1.永远选第一个、2.永远选最后一个、3.随机选择、4.取中间;快速排序的核心是分区,分区是为了传入一个数组和选定的一个元素,把所有小于那个元素的其它元素放在左边,所有大于的放在右边。流程图如下。

5a18866c49c4efe6b01254a960ce23f9.gif

下面是简化后的快速排序实现代码

ebe5a227b39b383d629b929b41299984.png

Bogo排序

这里还想提一下这个非常不实用而且非常原始的排序方法,仅供娱乐···在计算机科学中,Bogo排序是个既不实用又原始的排序演算法,其原理等同将一堆卡片抛起,落在桌上后检查卡片是否已经整齐排列好,如果没有就再抛一次。其名字源自Quantumbogodynamics,又称 bozo soart、blort sort 或猴子排序。下面是以C语言代码实现。

3d301d3950b78b108e1a30f4d4375dca.png f3e9d1d04491731386440636300eb211.png

优秀的算法很多,在学习的过程中,我们有必要学习各个排序算法的实现思路,从而提升自己对于程序设计的思路,如何优化,如何效率等。

fa9e3743f686fd91448c2413e7175331.gif c45ca4005e89304b005f92eceaecda0e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值