9_【排序算法】TopK 问题


「前言」文章内容是关于 TopK 问题的讲解。 一、概念 TopK 问题是一类常见的算法和数据处理问题,其核心任务是从包含大量数据项的集合中找到前 K 个最大的元素或者前 K 个最小的元素。 这类问题在计算机科学和数据处理领域广泛存在,具有多种应用场景,如搜索引擎、推荐系统、各种排行榜等等。 解决

8_【排序算法】七、归并排序


「前言」文章内容是排序算法之归并排序的讲解。 归并排序 1.1 原理 归并排序是一种有效的排序算法,采用分治法(Divide and Conquer)策略。它的基本思想是将数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并在一起。 归并排序的步骤: 分解:将数组分成两半,递归地

7_【排序算法】六、快速排序补充:三指针+随机数法


「前言」文章内容是对快速排序算法的补充,之前的算法流程细节多难处理,这里补充三指针+随机数法(递归),这个容易理解,在时间复杂度上也更优秀。 快排:三指针+随机数法 原理跟之前的一致,这里就不再解释,前面版本的细节太多,换成这个三指针很好。 传统的快速排序使用两个指针(一个指向当前序列的开始,另一个

6_【排序算法】六、快速排序


「前言」文章内容是排序算法之快速排序的讲解。 快速排序 1.1 原理 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法,一种高效的排序算法。 基本思想:是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分小,然后再按照此方法对这两部分数据分别进行快速排

5_【排序算法】五、冒泡排序


「前言」文章内容是排序算法之冒泡排序的讲解。 冒泡排序 1.1 原理 交换排序 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置。 交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 属于交换排序有:冒泡排序和快速排序。 冒泡排

4_【排序算法】四、堆排序


「前言」文章内容是排序算法之堆排序的讲解。 堆排序 1.1 原理 概念介绍 堆是一种特殊的树形数据结构,它满足以下两个性质: 堆是一棵完全二叉树 堆中每个节点的值都必须大于等于(或小于等于)其子节点的值,这样的堆称为大根堆(或小根堆) 堆排序是一种基于二叉堆数据结构的排序算法,堆排序一般都是使用数

3_【排序算法】三、选择排序


「前言」文章内容是排序算法之选择排序的讲解。 选择排序 1.1 原理 选择排序是一种简单直观的排序算法。 它的工作原理是: 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。 然后再从剩余的未排序元素中继续寻找最小(或最大)的元素,依次类推,直到所有元素排序完毕。 选择排

2_【排序算法】二、希尔排序


「前言」文章内容是排序算法之希尔排序的讲解。 希尔排序 1.1 原理 希尔排序是一种基于直接插入排序的排序算法,也称为“缩小增量排序”。 希尔排序法的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录"基本有序"时,再对全体记录进行一次直接插入排序。 希尔

1_【排序算法】一、直接插入排序


「前言」文章内容是排序算法之直接插入排序的讲解。 一、排序概念的介绍 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r