摘要: 我已无法用语言来描述递归有多牛逼。 #include<iostream> #include<vector> #include<algorithm> using namespace std; int max_sub_array(vector<int>& data, int left, int righ 阅读全文
posted @ 2020-11-24 21:03 不妨不妨,来日方长 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 2.1归并排序 问题特点:局部有序 快速合并:比较两有序数组当前最小元素,将较小者逐一合入新数组 输入规模越大,两两合并更有效。 但是数组可能没有局部有序特性,需要进行构建:两两合并 这个方法的本质就是归并排序算法。 归:递归 并:合并 2.2递归式求解 (1)递归树法:直观,不好求 (2)代入法: 阅读全文
posted @ 2020-11-24 20:55 不妨不妨,来日方长 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 性能分析: 时间复杂度:O(n*log(n)) 空间复杂度:O(n) 归并排序算法来自于分而治之思想,“归”是“递归”的意思,“并”是"合并“的意思,就是说将复杂的数组排序问题先进性分解,然后递归的解决小问题,最后合并问题的解。 #include<iostream> #include<vector> 阅读全文
posted @ 2020-11-24 19:44 不妨不妨,来日方长 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 课程目标: 如何判断哪个算法更高效:需分析比较算法运行效率 如何设计正确高效的算法:需掌握算法设计的方法论 1.1算法的由来 1.2算法的定义 要知道算法的定义,首先要知道计算问题这个概念,就是给定数据输入,计算满足某种性质输出的问题。而输入和输出这两个环节中间的部分,就是算法。 比如经典的排序算法 阅读全文
posted @ 2020-11-24 16:57 不妨不妨,来日方长 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 性能分析: 时间复杂度:O(n^2) 空间复杂度:O(1) 但是综合来讲,要比冒泡排序和选择排序好一些。 #include<iostream> #include<vector> using namespace std; int main() { // 首先找出待排序列中最小的数,然后用这个数和原序列 阅读全文
posted @ 2020-11-24 16:37 不妨不妨,来日方长 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一.sort函数 1.sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑! 2.sort函数的模板有三个参数: void sort (RandomAccessIterator fir 阅读全文
posted @ 2020-11-24 10:13 不妨不妨,来日方长 阅读(1031) 评论(0) 推荐(0) 编辑