)
小白记录日常学习今日任务总览| 步骤 | 内容 | 时间 ||------|------|------|| 1 | 看B站视频5.1~5.4共10节 | 54分钟 || 2 | 读下面的核心知识点 | 15分钟 || 3 | 手打并运行3个练习 | 50~70分钟 || 4 | 自检 | 10分钟 |看视频指南5.1 快速排序4小节25分钟| 小节 | 集号 | 标题 ||------|:--:|------|| 5.1.1 | P114 | 算法概述 || 5.1.2 | P115 | 选主元 || 5.1.3 | P116 | 子集划分 || 5.1.4 | P117 | 算法实现 |5.2 表排序2小节13分钟| 小节 | 集号 | 标题 ||------|:--:|------|| 5.2.1 | P118 | 算法概述 || 5.2.2 | P119 | 物理排序 | 表排序和多关键字排序以理解概念为主无独立练习。5.3 基数排序3小节12分钟| 小节 | 集号 | 标题 ||------|:--:|------|| 5.3.1 | P120 | 桶排序 || 5.3.2 | P121 | 基数排序 || 5.3.3 | P122 | 多关键字的排序 |5.4 排序算法的比较1小节4分钟| 小节 | 集号 | 标题 ||------|:--:|------|| 5.4.1 | P123 | 排序算法的比较 |核心知识点视频精华一、快速排序P114-P117 选基准 → 小的放左边、大的放右边 → 递归排两边。| 步骤 | 说明 ||------|------|| 选主元 | 选一个数作为分界通常选最右或中位数 || 划分 | 比 pivot 小的放左边大的放右边 || 递归 | 对左右两半重复同样操作 |时间复杂度O(n log n) 平均O(n²) 最坏。不稳定。二、表排序P118-P119 数据太大搬不动只排索引表不搬数据本身。适用场景数据元素很大如结构体数组交换成本高。三、桶排序 / 基数排序P120-P122 桶排序数据分桶 → 桶内排序 → 合并 基数排序按位个位→十位→百位逐轮分桶收集时间复杂度O(n) ~ O(n log n)。稳定基数排序。四、排序算法总结P123| 算法 | 平均 | 最坏 | 稳定 ||------|:--:|:--:|:--:|| 冒泡 | n² | n² | 是 || 插入 | n² | n² | 是 || 希尔 | n¹·³ | n² | 否 || 选择 | n² | n² | 否 || 堆 | n log n | n log n | 否 || 归并 | n log n | n log n | 是 || 快速 | n log n | n² | 否 || 基数 | O(n) | O(n) | 是 | 基数排序复杂度实际为 O(d×(nk))d为位数、k为基数。表中 O(n) 为简化描述。动手练习| | 练习 | 对应视频 | 文件名 ||---|------|:--:|--------|| 1 | 快速排序 | P114-P117 | practice1_quicksort.c || 2 | 桶排序 | P120-P121 | practice2_bucket.c || 3 | 排序算法耗时对比 | P123 | practice3_sort_compare.c |练习1快速排序对应 P114-P117快速排序最核心的是分区逻辑用纸画出第一轮的分区过程。练习2桶排序对应 P120-P121分桶→桶内排序→收集理解这个流程就懂了基数排序的思想。练习3排序对比对应 P123同一组数据三种排序的耗时差多少亲眼看到 O(n²) 和 O(n log n) 的差距。measure() 中 void (sort)(int[], int) 是函数指针——看不懂语法没关系看调用方式 measure(bubble_sort, ...) 就行。今日自检- [ ] 能说出快速排序的三个步骤选基准→分区→递归- [ ] 能解释桶排序的分桶→排序→收集流程- [ ] 能说出至少三种 O(n log n) 和三种 O(n²) 的排序算法- [ ] 三个练习都编译运行成功明天预告第6天自选项目一 —— 学生管理系统