排序算法
文章平均质量分 65
wlhr62
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【经典排序算法】7-计数排序
1. 计数排序的思想 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。2. 计数排序的算法步骤 算法的步骤如下: (1)找出待排序的数组中最大和最小的元素; (2)统计数组中每个值为i的元素出现的次数,存入数组C的第i项; (3)对所有的计数累加(从C中的第一个元素开始,每一项和前一项相加); (4)反向填充目标数组:将每个元素i放在新数组的第C(i)项,每放一个元素就将C(i)减去1。原创 2021-12-02 22:42:44 · 277 阅读 · 0 评论 -
【经典排序算法】2-选择排序
文章目录1. 选择排序的思想2. 选择排序的1. 选择排序的思想2. 选择排序的原创 2021-11-28 21:28:57 · 280 阅读 · 0 评论 -
【经典排序算法】3-插入排序、折半插入排序、希尔排序
文章目录1. 插入排序的思想2. 插入排序的算法步骤3. 插入排序的代码4. 插入排序的复杂度分析5. 插入排序的稳定性分析1. 插入排序的思想2. 插入排序的算法步骤3. 插入排序的代码4. 插入排序的复杂度分析5. 插入排序的稳定性分析...原创 2021-11-28 20:58:32 · 612 阅读 · 0 评论 -
【经典排序算法】5-堆排序
文章目录1. 堆排序的思想2. 堆排序的代码1. 堆排序的思想 初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1…n]建成最大堆,其中n=A.length。 因为数组中的最大元素总在根节点A[1]中,通过把它和A[n]进行互换,可以将该元素放到正确的位置。这时候,如果我们从堆中去掉结点n,剩余的结点中,原来根的孩子结点仍然是最大堆,而新的根节点可能会违背最大堆的性质。 为了维护最大堆的性质,我们要做的是调用MAX-HEAPIFY(A, 1),从而在A[1…n-1]上构造一原创 2021-11-28 20:48:06 · 427 阅读 · 0 评论 -
【经典排序算法】6-归并排序
文章目录1. 归并排序的思想2. 归并排序的算法步骤3. 归并排序的演示图解4. 归并排序的代码5. 归并排序的复杂度分析6. 归并排序的稳定性分析1. 归并排序的思想 归并排序,采用的是典型的分治思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 注意:代码里在两个队尾放置了一个哨兵INT_MAX,来避免判断是否有一个队列已经为空,达到简化代码的目的。2. 归并排序的算法步骤3. 归并排序的演示图解4. 归并排序的代码原创 2021-11-28 20:22:17 · 654 阅读 · 0 评论 -
【经典排序算法】4-快速排序
文章目录1. 快速排序的思想2. 快速排序的算法步骤3. 快速排序的演示图解4. 快速排序的代码5. 快速排序的算法导论思想6. 快速排序的最早算法思想7. 快速排序的复杂度分析8. 快速排序的稳定性分析1. 快速排序的思想快速排序其实是对冒泡排序的一种改进,目的是提高排序的效率。快速排序中最重要的一个词是“基准”,一般取第一个元素作为基准(这个是必须要取第一个元素吗?留个疑问给大家,后面的优化方法中会提到和解释),把所有比基准值小的元素放在基准前面,所有比基准值大的元素放在基准的后面(相同的数可以原创 2021-11-28 14:07:28 · 870 阅读 · 0 评论 -
【经典排序算法】1-冒泡排序
文章目录1. 冒泡排序的思想2. 冒泡排序的算法步骤3. 冒泡排序的代码4. 冒泡排序的算法导论解法5. 冒泡排序的复杂度分析6. 冒泡排序的稳定性分析1. 冒泡排序的思想 冒泡排序的思想就是:从第一个数开始,两两进行比较,逆序时交换。经过一趟比较之后,最大的数会被交换到最后,即最大的数会沉底,类似于最大的水泡在池子最底层(反之,从大到小排序也是一样的原理)。然后接着对前n-1个记录重复上述过程,直到排序完毕,类似于冒泡过程。 注意:在某趟排序的比较中,如果发现两两比较无一交换,则说明数组已经有序原创 2021-11-28 13:24:03 · 1285 阅读 · 0 评论 -
超详细讲解-十大经典排序算法-总结
文章目录排序算法介绍今日份鸡汤:你战胜了苦难,它就是你的财富; 苦难战胜了你,它就是你的屈辱。排序算法介绍排序算法是数据结构中最基本的算法,也是最经典的算法之一。排序算法有多种分类方法,如:内排和外排、比较排序和非比较排序、稳定排序和非稳定排序等。排序算法大体可分为两种:一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序原创 2021-11-01 17:54:06 · 515 阅读 · 0 评论
分享