(72)王道数据结构-置换-选择排序原文地址:置换-选择排序 基本概念生成初始归并段时,我们把含有 n 个记录的文件传入内存,按照给定的 内排序算法 或 置换-选择排序算法 划分成 m 个规模较小的有序的记录段。 实现过程1.把含有 n 个记录的文件,按内存大小 w 分成若干长度为 w 的子文件(归并段) 2.分别将各子文件(归并段)调入内存,采用有效的内排序方法排序后送回外存。产生 n/w 个初始归并段 算法思想前提条件1.该数必 2022-09-08 信工核心 #数据结构 #置换-选择排序
(71)王道数据结构-败者树基本概念败者树是胜者树的一种变体。在败者树中,用父结点记录其左右子结点进行比赛的败者,而让胜者参加下一轮的比赛。败者树的根结点记录的是败者,需要加一个结点来记录整个比赛的胜利者。采用败者树可以简化重构的过程。 败者树是计算机科学学科里的一种数据结构,可用于外部排序中提高效率。 [1] 败者树实际上是一棵完全二叉树,可以看做是胜者树的一种变体。败者树简化了重构。败者树的重构只是与该结点的父结点的记 2022-09-08 信工核心 #数据结构 #败者树
(70)王道数据结构-外部排序基本概念外排序(External sorting)是指能够处理极大量数据的排序算法。通常来说,外排序处理的数据不能一次装入内存,只能放在读写较慢的外存储器(通常是硬盘)上。外排序通常采用的是一种“排序-归并”的策略。在排序阶段,先读入能放在内存中的数据量,将其排序输出到一个临时文件,依此进行,将待排序数据组织为多个有序的临时文件。而后在归并阶段将这些临时文件组合为一个大的有序文件,也即排序结果。 2022-09-08 信工核心 #数据结构 #外部排序
(69)王道数据结构-基数排序原文地址:基数排序 基本概念基数排序依然是一种依靠统计来进行的排序算法,但是它不会因为范围太大而导致无限制地申请辅助空间。它的思路是,分出10个基数出来(从0 - 9)我们依然是只需要遍历一次,我们根据每一个元素的个位上的数字,进行分类,因为现在有10个基数,也就是10个桶。个位完事之后再看十位、百位… 算法演示网站:https://visualgo.net/zh/sorting 示例数组数组: 2022-09-08 信工核心 #数据结构 #基数排序
(68)王道数据结构-归并排序原文地址:归并排序 基本概念归并排序利用递归分治的思想,将原本的数组进行划分,然后首先对划分出来的小数组进行排序,然后最后在合并为一个有序的大数组 示例数组数组: 4,2,7,1,8,5,3,6 划分第一次划分: 第二次划分: 最后一次划分: 合并1.注意这里的合并并不是简简单单地合并,我们需要按照从小到大的顺序 2.依次对每个元素进行合并,第一组树4和2 3.从这两个数组中先选择小的排到前面去 2022-09-08 信工核心 #数据结构 #归并排序
未来计划最近计划数据结构1.最短路径问题(Floyd) 2.b树、b+树、散列查找 3.有向无环图 4.拓扑排序 5.关键路径 Java基础1.10月01日之前完成java新特性学习,并尝试改写所有课堂作业 2.10月23日之前写完Java总结 3.10月31日之前学习完JavaWeb 实际11月09日完成,低估了难度,以及一些其他的事情 英语❌9月15之前背完单词第二轮(没顾得上背) ❌计划变为10 2022-08-29 日常分享 #计划
常用数学符号数字符号1234⓪ ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳⓿ ❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ 几何符号1⊥ ‖ ∠ ⌒ ⊙ ≡ ≌ △ 代数符号1∝ ∧ ∨ ~ 2022-08-23 数学相关 #符号 #数学
(67)王道数据结构-堆排序基本概念堆排序是一种树形选择排序方法,其特点:在排序过程中,将L[1…n]视为一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的元素 若n个关键字序列L[1…n]满足下面某一种性质,则称为堆(Heap)①若满足: L(i) ≥ L(2i)且L(i)≥L(2i+1) (1 ≤ i ≤ n/2)-大根堆(大顶堆)②若满足: L(i) 2022-08-23 信工核心 #数据结构 #堆排序
(66)王道数据结构-简单选择排序基本概念假设排序表为L[1…n],第i趟排序即从L[i…n]中选择关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终位置,这样经过n-1趟排序就可使得整个排序表有序 代码逻辑123456789101112131415161718192021//简单选择排序void SelectSort(ElemType A[], int n) { //对表A做简单选择排序,A[]从0 2022-08-23 信工核心 #数据结构 #简单选择排序
(65)王道数据结构-快速排序基本概念快速排序是对冒泡排序的一种改进, 其基本思想是基于分治法的:在待排序表L[1…n]中任取一个元素pivot作为基准,通过一趟排序将待排序表划分为独立的两部分L[1…k-1]和 L[k+1…n],使得L[1…k-1]1中的所有元素小于pivot, L[k+1…。n]中的所有元素大于等于pivot,则pivot放在了其最终位置L(k)上,这个过程称为一趟快速排序。而后分别递归地对两个子表重复上 2022-08-23 信工核心 #数据结构 #快速排序