随笔分类 - 算法
摘要:数组去重 对于默认排序的数组进行去重操作。 使用的方法可以形象地理解为 新旧表法。 下标 i 对应新表,j 对应旧表。初始化后,i 始终小于 j,因此 i 指向的存储空间始终有效,j 则顺序遍历旧表,新表与旧表在某种程度上不干扰,准确来说是已去重的数据和未处理的数据之间不存在交集,充分利用了当前的空
阅读全文
摘要:快速排序 大多数情况下效率更高,所以应用非常广泛。再加上快速排序所采用的分治思想非常实用。 定义 从数组中取出一个数,称之为基数(pivot) 遍历数组,将比基数大的数字放到它的右边,比基数小的数字放到它的左边。遍历完成后,数组被分成了左右两个区域 将左右两个区域视为两个数组,重复前两个步骤,直到排
阅读全文
摘要:堆排序 定义 堆:符合以下两个条件之一的完全二叉树: (1)根节点的值 ≥ 子节点的值,这样的堆被称之为最大堆,或大顶堆; (2)根节点的值 ≤ 子节点的值,这样的堆被称之为最小堆,或小顶堆。 实现(数组) 堆排序的核心操作在于初始化堆和调整堆。 初始化堆:由于堆是一个完全二叉树,因此可以借用对完全
阅读全文

浙公网安备 33010602011771号