
算法与数据结构
算法与数据结构
遨游的菜鸡
这个作者很懒,什么都没留下…
展开
-
算法与数据结构总纲
算法与数据结构这一栏介绍的东西会比较杂:排序、递归、数组、链表、分治、二进制位运算、回溯、动态规划等等,这些加起来可能会让人分不清什么是算法、什么是数据结构,下面做个简要的介绍: 在本栏目介绍中:分治、动态规划、回溯是解决一类问题的思想;递归是实现某种算法思想的形式or手段;排序算法、dfs、bfs等是具体的算法,不同的排序思想可能是不同的算法思想的具体实现;数组/链表是存储数据的方式,相关的blog也是为了熟练操作(可能有些相关的小算法)这种数据结构。 当然,学过《算法》与《数据结构》区分这些很容易。原创 2021-12-05 22:11:41 · 662 阅读 · 0 评论 -
分治思想及实例
文章目录1.分治实现快排1.1 介绍1.2 代码2.分治求众数3.分治求最大、最小数4.分治法解决最近点对问题 1.分治实现快排 1.1 介绍 1.2 代码 /* 快速排序分治版本 */ /* https://blog.youkuaiyun.com/u013948010/article/details/78690467 */ /*选取最右那个为主元,每轮排序时,小与主元的通过交换往前放,大于主元的通过交换放后边,最后for循环结束时通过最后一次交换将主元放过来*/ #include <iostream原创 2021-12-05 22:02:57 · 1718 阅读 · 0 评论 -
排序~~~
文章目录1. 序言2.代码(均为升序)2.1 冒泡排序2.2 选排2.3 插排2.4 快排2.4 归并排序2.5 堆排序 https://blog.youkuaiyun.com/xiaoxiaojie12321/article/details/81380834 1. 序言 2.代码(均为升序) 2.1 冒泡排序 def maopao(arr): length = len(arr) for i in range(length): for j in range(1,length-i): if arr[j]原创 2021-09-22 00:58:37 · 408 阅读 · 0 评论 -
二进制位运算
1.序言 2.例题 1.减法实现除法 https://leetcode-cn.com/problems/xoh6Oh/原创 2021-09-21 22:48:27 · 162 阅读 · 0 评论 -
数组(双头指针、二分查找、前缀和、滑动窗口)
1.序言 介绍数组相关操作 2.例题 1.双头指针 https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/ https://leetcode-cn.com/problems/he-wei-sde-liang-ge-shu-zi-lcof/ 2.二分 https://blog.youkuaiyun.com/weixin_43232955/article/details/10752原创 2021-09-20 19:28:53 · 223 阅读 · 0 评论 -
dfs、回溯、递归
1.序言 转自:https://blog.youkuaiyun.com/fengchi863/article/details/80086915 递归是一种算法结构,回溯是一种算法思想 一个递归就是在函数中调用函数本身来解决问题 回溯就是通过不同的尝试来生成问题的解,有点类似于穷举,但是和穷举不同的是回溯会“剪枝”,意思就是对已经知道错误的结果没必要再枚举接下来的答案了,比如一个有序数列1,2,3,4,5,我要找和为5的所有集合,从前往后搜索我选了1,然后2,然后选3 的时候发现和已经大于预期,那么4,5肯定也不行,这就原创 2021-05-21 17:44:30 · 240 阅读 · 0 评论 -
链表~~~
1.序言 一种数据结构 2.例题 1.两数相加 https://leetcode-cn.com/problems/add-two-numbers/原创 2021-05-19 21:55:06 · 111 阅读 · 0 评论 -
贪心
1. 序言 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,它所做出的仅仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性(即某个状态以后的过程不会影响以前的状态,只与当前状态有关。) 所以,对所采用的贪心策略一定要仔细分析其是否满足无后效性。 证明每次的局部最优解必须在全局最优解序列中,否则不可能到达全局最优!一般判断贪心是否能原创 2021-05-11 20:19:24 · 130 阅读 · 0 评论 -
dp(动态规划)
1.序言 分治法:问题可分解为规模逐渐减小的同类型子问题,子问题相互独立,不包含公告子问题 dp:问题可分解为规模逐渐减小的同类型子问题,但分解得到的子问题很多都是重复的。即总大问题可以分解为二级子问题,三级子问题。。。其中二级子问题中的每个子问题都需要用到每个三级子问题的解,因此每个三级自问题只需要计算一次,把其结果保存,在需要的时候调用。 dp:每个动态规划都从一个网格开始 2.开始 1.入门—01背包 https://www.cnblogs.com/kkbill/p/12081172.html(推荐)原创 2021-04-07 17:41:36 · 430 阅读 · 0 评论