摘要: 本文汇总了 C++11 中的运算符的含义、优先级分组及其结合性。 如果两个运算符用于同一个操作数,首先应用优先极高的。如果两个运算符优先级相同,按结合性规则决定应用那个运算符。同一组中的运算符优先级和结合性相同,无论先左后右(L-R),还是先右后左(R-L)。 运算符 含义 优先级分组 结合性 :: 阅读全文
posted @ 2024-06-11 11:34 green-cnblogs 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 本文记述了对快速排序的 2 项改进的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 本文实现了《算法(第4版)》书中提到的 2 项改进, 切换到插入排序:对小规模子数组使用插入排序。减少在小规模数组中的递归调用能改进整个算法。 三取样切分:将取样大小设为 3 并用 阅读全文
posted @ 2024-06-05 22:53 green-cnblogs 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 本文记述了快速排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 基于分治思想的快速排序,使用切分函数找到一个切分位置,保证其左侧子范围内的所有元素都不大于切分位置的元素,右侧子范围内的所有元素都不小于切分位置的元素。然后用递归调用分别对两个子范围排序。 算法的 阅读全文
posted @ 2024-06-02 21:30 green-cnblogs 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 本文记述了多向归并排序的基本思想并给出了一份参考实现代码。在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 在归并排序、归并排序(二)、归并排序(三)、归并排序(四)中记述的归并排序,都是把待排序范围分成两个部分分别排序的。而多向归并排序是把待排序范围分为 K 个部分,把它们分别排序然后进行归并 阅读全文
posted @ 2024-05-25 09:14 green-cnblogs 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 本文记述了自然的两两归并排序并给出了一份参考实现代码。在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 自然的归并排序是自底向上的。先从第一个元素开始找到一个有序的子范围,然后从紧接着的后面元素开始找到另一个有序的子范围,将这两个子范围归并成一个大的有序子范围。接着找到下一个有序子范围,将它与前 阅读全文
posted @ 2024-05-23 12:38 green-cnblogs 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 本文记述了针对归并排序的 3 项改进和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 本文实现了《算法(第4版)》书中提到的 2 项改进和练习题 2.2.10。 对小规模子数组使用插入排序。因为递归会使小规模问题中方法的调用过于频繁,所以改进对它们的处理方法就能改进整个算法 阅读全文
posted @ 2024-05-20 11:45 green-cnblogs 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 本文记述了针对归并排序的 3 项改进和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 本文实现了《算法(第4版)》书中提到的 3 项改进, 对小规模子数组使用插入排序。减少在小规模数组中的递归调用能改进整个算法。 测试数组是否已经有序。任意有序的子数组算法的运行时间变成线性 阅读全文
posted @ 2024-05-14 20:50 green-cnblogs 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 本文记述了自底向上归并排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 使用自底向上的递推思想进行排序。从大小为 1 的子范围开始两两归并,得到小规模排序的结果。逐步将子范围的大小翻倍并继续两两归并,直到整个数组范围都已被归并,即得到整体排序的结果。归并两个已 阅读全文
posted @ 2024-05-07 15:06 green-cnblogs 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 本文记述了自顶向下归并排序的基本思想和一份参考实现代码,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 使用自顶向下的分治思想进行排序。将待排序元素分为两个待排序子范围,用递归的方式对两个子范围分别排序。然后将排序结果归并起来,即得到整体排序的结果。归并两个已排序的子范围时,需要借助临时的存 阅读全文
posted @ 2024-04-22 14:36 green-cnblogs 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 本文记述了希尔排序采用另一个间隔序列的基本思想和参考实现,并在说明了算法的性能后用随机数据进行了验证。 ◆ 思想 在前一篇希尔排序文章中,用到了简单的间隔序列 1, 4, 13, 40, ... (h = 3*h + 1)。本文参考了《算法(第4版)》练习题 2.1.29,用到的间隔序列为 1, 5 阅读全文
posted @ 2024-04-17 15:15 green-cnblogs 阅读(23) 评论(0) 推荐(0) 编辑