排序

排序算法之冒泡排序代码模板(C/C++/Java/Python多版本)

冒泡算法是一种基础的排序算法,其核心思想是反复交换相邻元素,如同水中的气泡逐渐上浮。它通过多轮遍历,在每一轮中依次比较相邻的两个元素,如果它们的顺序错误(例如前一个比后一个大),就交换它们的位置,这样每一轮遍历都会将当前未排序部分中的最大(或最小)元素“浮”到正确的一端(末端)。

堆排序算法实例详解

1.复杂度与稳定性算法时间复杂度最坏情况:O(n^2)最好情况:O(n)平均情况:O(nlogn)稳定性:不稳定排序2.什么是堆?堆排序是一个比较特殊的排序方式,在学习之前我们必须要了解什么是堆堆是一种非线性的数据结构,可以把堆看作一个数组,

Java希尔排序(Shell Sort)

希尔排序(ShellSort)是插入排序的一种,也是直接插入排序的更高效的改进版本,希尔排序充分利用了插入排序的两个特点:1)当数据规模小的时候非常高效。2)当给定数据已经有序时的时间复杂度为O(n)。所以,Shell排序每次把数据分成若干块,

归并排序算法C/C++代码图文讲解

归并排序算法是在分治算法基础上设计出来的一种排序算法,它可以对指定序列完成升序(由小到大)或降序(由大到小)排序,对应的时间复杂度为O(nlogn)。(1)算法思路归并排序算法实现排序的思路是:1.将整个待排序序列划分成多个不可再分的子序列,

Java冒泡排序(Bubble Sort)

1.冒泡排序冒泡排序(BubbleSort)是编程中较简单的一种排序算法。它重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误,就把它们交换过来。重复地进行走访数列的工作直到没有再需要交换的元素,这也就意味着该数列已经完成排序。冒泡排序就像气泡从水中出现一样,

排序算法之选择排序代码模板(C/C++/Java/Python多版本)

选择排序是一种简单直观的排序算法。它的工作原理是:首先在整个序列中找到最小(或最大)的元素,将其与序列第一个位置的元素进行交换;然后,在剩下的未排序元素中继续寻找最小(或最大)的元素,将其与第二个位置的元素交换;以此类推,不断在剩余的未排序部分中选择最值元素,

基数排序算法C/C++代码图文讲解

基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。(1)什么是基数排序?1.通过键值得各个位的值,

归并排序算法实例详解

1.复杂度与稳定性算法时间复杂度最坏情况O(NlogN)最好情况O(NlogN)平均情况O(NlogN)空间复杂度O(N)注:归并排序需要创建一个与原数组相同长度的数组来辅助排序稳定性:稳定排序2.过程介绍归并排序的核心思想是将两个有序的数列合并成一个大的有序的序列。

什么是拓扑排序?

拓扑排序主要解决的问题是给一个图的所有节点排序。一、什么是拓扑排序在图论中,拓扑排序(TopologicalSorting)是一个有向无环图(DAG,DirectedAcyclicGraph)的所有顶点的线性序列。且该序列必须满足下面两个条件:(1)每个顶点出现且只出现一次。