![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 68
01红C
宇宙超粒终端控制中心委员会地球分委——委员长
展开
-
冒泡排序的理解与实现【C语言、C++、java】
冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾!采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!原创 2024-03-11 20:48:21 · 1183 阅读 · 0 评论 -
快速排序|超详细讲解|入门深入学习排序算法
快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放在基准前面,所有比基准值大的摆在基准的后面(相同的数可以到任一边);在这个分区退出之后,该基准就处于数列的中间位置。原创 2024-01-31 19:20:14 · 844 阅读 · 0 评论 -
排序算法之希尔排序
希尔排序是的改进版,也称为“缩小增量排序”。希尔排序的基本思想是将待排序的数组元素按某个增量分成若干组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个数组被分为一组,算法便终止。希尔排序的整个过程可以形象地描述为“分治”的思想,即先将大问题分解为若干个小问题,对小问题分别求解,然后再将这些小问题的解合并起来,得到原大问题的解。希尔排序的优点在于其比较和交换的次数比直接插入排序要少得多,特别是当数据量较大时。原创 2023-12-26 21:25:57 · 705 阅读 · 1 评论 -
排序算法之插入排序c++
最差时间复杂度:O(n^2)最优时间复杂度:O(n)平均时间复杂度:O(n^2)稳定性:稳定将插入排序比喻为打扑克牌从牌堆中抓牌非常形象和生动。在插入排序中,数组就像是扑克牌的牌堆,而每一次插入操作则像是从牌堆中抓取一张扑克牌,并将其插入到正确的位置。在插入排序的过程中,初始时,已排序部分只有一张牌(或一个元素),然后从未排序部分(牌堆)中取出一张牌,并在已排序部分找到合适的插入位置插入。这个过程会重复进行,直到未排序部分的牌为空,算法结束。原创 2023-12-26 20:52:39 · 348 阅读 · 1 评论 -
排序算法之选择排序c++
第i轮操作(i>=0),将arr[i]分别于第i个数据之后的元素比较,如果发现比arr[i]小的元素,就让二者交换位置。n个数字,选出9个最小的数,会剩下一个最后的最大那个数,那个数即使不用管它也自然而然地排好了,所以,排序算法:每一轮从待排序的数据中选出最小或最大的一个元素,把选出的这个数据放在。的后面,知道全部待排列的数据元素排完。原创 2023-12-25 15:50:08 · 372 阅读 · 0 评论 -
排序算法之冒泡排序c++
(1)两两比较相邻元素A(I)和A(I+1)(I=1,2,…N-1),如果A(I)>A(I+1),则交换A(I)和A(I+1)的位置;(2)对剩下的N-1个元素,再两两进行比较,按同样规则交换它们的位置,经过N-2次比较,将次最大值交换到A(N-1)的位置;(3)如法炮制,经过N-1趟的“冒泡处理”,每趟进行N-i次的比较,全部数列有序。原创 2023-12-25 14:21:55 · 628 阅读 · 0 评论