![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 50
孤独的探识者
这个作者很懒,什么都没留下…
展开
-
排序算法-8种常见内部排序算法和4种外部排序算法
就是重新排列表中的元素,使得表中的元素满足按关键字有序的过程。原创 2023-07-14 16:30:12 · 179 阅读 · 0 评论 -
排序算法-四种常用外部排序算法
① 最多只能有k个段归并为一个;② 每一趟归并中,若m个归并段参与归并,经过这一趟处理得到[m/k]个新的归并段。原创 2023-07-14 16:00:09 · 1072 阅读 · 0 评论 -
排序算法--基数排序
例如:关键字483,个位:3;十位:8;百位:4;取值范围是 0 < k < 9,则基数r = 10, d = 3。注:基数排序不是基于“比较”的排序算法。原创 2023-07-13 18:03:34 · 124 阅读 · 0 评论 -
排序算法--归并排序
归并:把两个或多个已经有序的序列合并成一个。特点:M路归并,每选出一个元素就需要对比关键字m-1次。原创 2023-07-13 17:01:51 · 65 阅读 · 0 评论 -
排序算法--堆排序
算法思路:先将待排序元素建立为大根堆,再每一趟将堆顶元素加入有序子序列(与待排序序列中的最后一个元素交换),并将待排序元素序列再次调整为大根堆。算法思路:编号≤n/2的所有元素依次“下坠”调整(自底向上处理各个分支结点),调整规则为小元素逐层“下坠”(与关键字更大的孩子交换)。若满足:L(i)≥L(2i)且L(i)≥L(2i + 1) (1≤i≤n/2) ,则为大根堆(大顶堆)。若满足:L(i)≤L(2i)且L(i)≤L(2i + 1) (1≤i≤n/2) ,则为小根堆(小顶堆)。:可用于顺序表和链表。原创 2023-07-13 14:37:23 · 63 阅读 · 0 评论 -
排序算法--简单选择排序
每一趟在待排序元素中选取关键字最小(或最大)的元素加入有序子序列。:可用于顺序表和链表。原创 2023-07-13 14:30:12 · 59 阅读 · 0 评论 -
排序算法--快速排序
n]中任取一个元素pivot作为基准(通常取首元素),通过一趟排序将待排序表划分为独立的两部L[1,…,k-1]和L[k+1,…,n],使得L[1,…,k-1]中所有元素小于pivot,L[k+1,…,n]中所有元素大于等于pivot,则pivot放在了其最终位置L[k]上,这个过程称为一次“划分”。然后分别递归地对两个子表重复上述过程,直到每部分内只有一个元素或空为止,即所有元素放在了其最终位置上。:最好=O(nlog2(n))、最坏=O(n^2)。:最好=O(log2(n))、最坏=O(n)。原创 2023-07-12 16:09:32 · 53 阅读 · 0 评论 -
排序算法--冒泡排序
从后往前(或从前后往)两两比较相邻元素的值,若为逆序,则交换他们,直到序列比较完,称这样为“一趟”冒泡排序,重复排序,直到最后一个元素(或最前一个元素)。:可用于顺序表和链表。原创 2023-07-12 16:04:34 · 50 阅读 · 0 评论 -
排序算法--希尔排序
先将待排序表分割成若干形如L[i,i+d,i+2d,…,i+kd]的特殊子表,对各个子表分别进行直接插入排序。缩小增量d,重复上述过程,直到d=1为止。过程如下所示:(希尔本人建议:每次将增量缩小一半):最坏情况O(n^2),目前无法用数学手段得到,但优于直接插入排序。:先追求表中元素部分有序,然后再逐渐逼近全局有序。:仅适用于顺序表,不适用于链表。原创 2023-07-12 15:58:55 · 63 阅读 · 0 评论 -
排序算法--插入排序
每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中过,直到全部记录插入完成。原创 2023-07-12 15:51:27 · 55 阅读 · 0 评论