摘要: 应用场景-修路问题 看一个应用场景和问题: 有胜利乡有7个村庄(A, B, C, D, E, F, G) ,现在需要修路把7个村庄连通 各个村庄的距离用边线表示(权) ,比如 A – B 距离 5公里 问:如何修路保证各个村庄都能连通,并且总的修建公路总里程最短? 最小生成树 修路问题本质就是就是最 阅读全文
posted @ 2020-02-22 08:36 cnng 阅读(731) 评论(0) 推荐(0) 编辑
摘要: kmp算法 问题描述 应用场景-字符串匹配问题 字符串匹配问题:: 有一个字符串 str1= ""硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好"",和一个子串 str2="尚硅谷你尚硅你" 现在要判断 str1 是否含有 str2, 如果存在,就返回第一次出现的位置, 如果没有,则返回-1 暴力匹 阅读全文
posted @ 2020-02-21 09:25 cnng 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 贪心算法与集合覆盖 应用场景-集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号 广播台 覆盖地区 K1 "北京", "上海", "天津" K2 "广州", "北京", "深圳" K3 "成都", "上海", "杭州" K4 阅读全文
posted @ 2020-02-21 09:23 cnng 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 动态规划与背包问题 应用场景-背包问题 物品 重量 价格 吉他(G) 1 1500 音响(S) 4 3000 电脑(L) 3 2000 背包问题:有一个背包,容量为4磅 , 现有如下物品 要求达到的目标为装入的背包的总价值最大,并且重量不超出 要求装入的物品不能重复 动态规划算法介绍 动态规划(Dy 阅读全文
posted @ 2020-02-20 08:55 cnng 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 分治与汉诺塔 分治算法 分治算法介绍 分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排 阅读全文
posted @ 2020-02-20 08:52 cnng 阅读(996) 评论(0) 推荐(0) 编辑
摘要: 个人觉得 直接选择是最简单的一种排序了 步骤 从待排序序列中,找到最小的元素; 如果最小元素不是待排序序列的第一个元素,将其和最后一个元素互换; 从余下的 N - 1 个元素中,找出关键字最小或最大的元素,重复(1)、(2)步,直到排序结束。 第一个数和第二个,第三个..最后一个数比较, 每次比较选 阅读全文
posted @ 2020-02-20 07:02 cnng 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 这本书的大名早就听说过了,还有那个10000小时的理论, 刻意练习 也有一些观点成为了自己的准则和方法 都说第一遍粗读,大致的翻阅,但是我觉得 第二遍也不用逐字逐句的看,很多都是支持观点的例子 听说这么厉害的书 却都没啥有用的 小明 小花类的例子(感觉不真实也没法证实) 或太大的观点 …. 简直了 阅读全文
posted @ 2020-02-19 13:31 cnng 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。 链表如下图 数2下 自己也要数 所以只会移动1次 构建链表 阅读全文
posted @ 2020-02-19 08:29 cnng 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 从小到大的冒泡排序 冒泡排序是通过对待排序序列从前向后,依次比较相邻元素的值,如果逆序则交换顺序,使值大的元素移向后部。冒泡排序是一种稳定的算法,时间复杂度 O(n2) 下标从1开始 因为有10个数 所以外循环要循环10次 所以i = 10 i>0 i-- 第一次要9趟 第二次8 第三次7 第一次 阅读全文
posted @ 2020-02-19 08:27 cnng 阅读(242) 评论(0) 推荐(0) 编辑