笔记
t c j
这个作者很懒,什么都没留下…
展开
-
线性时间排序(计数、基数、桶排序)
线性时间排序1.计数排序原理:计数排序是一种稳定的排序算法,但适用范围相对来说具有一定的局限性。当数据之间的差值太大,消耗的计算机资源相对来说太大,则不适合于用计数排序。在适合的数据面前,其排序的时间复杂度的是非常小的,运行时间为Θ(n)。基本思想:对于每一个输入元素x,确定小于x的元素个数。以此来确定x的输出位置,例如:小于x的元素有15个,则第16号输出元素就是x。当有几个元素相同时,将方案略作修改,因为不能将其放在同一输出位置上。代码:#计数排序代码def CountingSort(a原创 2021-11-30 16:29:46 · 108 阅读 · 0 评论 -
计数排序python
计数排序计数排序是一种稳定的排序算法,但适用范围相对来说具有一定的局限性。当数据之间的差值太大,消耗的计算机资源相对来说太大,则不适合于用计数排序。在适合的数据面前,其排序的时间复杂度的是非常小的,运行时间为Θ(n)。基本思想:对于每一个输入元素x,确定小于x的元素个数。以此来确定x的输出位置,例如:小于x的元素有15个,则第16号输出元素就是x。当有几个元素相同时,将方案略作修改,因为不能将其放在同一输出位置上。代码:#计数排序代码def CountingSort(a, b, k): c=原创 2021-11-26 10:21:01 · 827 阅读 · 0 评论 -
堆排序python
堆排序堆排序是一个近似完全二叉树的结构,利用堆这种数据结构所设计而成的一种排序算法。堆操作:在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下几种操作:最大堆调整(swap):将堆的末端子节点作调整,使子节点小于父节点创建最大堆(adjust_heap):将堆中的所有数据重新进行排序堆排序(heap_sort):移除位在第一个数据的根节点,并做最大堆调整的递归运算下面为堆排序操作示例图:#堆排序代码def swap(data, ro原创 2021-11-24 10:18:33 · 449 阅读 · 0 评论 -
python快速排序
快速排序快速排序是最常用的一种排序算法,包括C的qsort,C++和Java的sort,都采用了快排(C++和Java的sort经过了优化,还混合了其他排序算法)。快排最坏情况 ????(????2) ,但平均效率 ????(????lg????) ,而且这个 ????(????lg????) 记号中隐含的常数因子很小,快排可以说是最快的排序算法,它还是就地排序。快速排序是基于分治策略的。对一个子数组A[p…r]快速排序的分治过程的三个步骤为:1、分解数组A[p…r]被划分成两个(可能空)原创 2021-11-22 18:52:08 · 1072 阅读 · 0 评论 -
python归并排序
python之归并排序原创 2021-11-21 23:21:00 · 632 阅读 · 0 评论 -
python插入排序
初学Python原创 2021-11-21 10:24:04 · 615 阅读 · 0 评论