随笔分类 - Algorithm
摘要:觉得还是先从简单例子程序着手,先了解各个算法的基本思想。 目录: 算法是指对特定问题求解步骤 的一种描述 算法的评价标准:时间复杂度与空间复杂度。 时间复杂度:考虑给定的数据数目n,关于算法的执行次数。渐进上界用O()表示,最坏情况对衡量算法的好坏具有实际的意义。 空间复杂度:算法占用的空间大小。一
阅读全文
摘要:按照结构体数组的某一项排序,那么一个结构体包含的其他元素仍保持不变。也就是说只能选择其中一项作为指标进行排序,相应的其他值对应不变化。 如下图,排序前数组为:1,3;8,4;5,2; 排序后仍然是它们的组合,只是顺序变了而已。 结果如下: 代码:
阅读全文
摘要:六、图与广度优先搜索 本章将介绍图数据和图算法——广度优先搜索(breadth-first search,BFS) 广度优先搜索用于查找两样东西之间的最短距离。解决最短路径问题的算法被称为“广度优先搜素” 何为图?图由节点和边组成,图模拟一组连接 注意,广度优先搜索是一种用于图的查找算法,回答两类问
阅读全文
摘要:四、快速排序 分而治之DC(divide and conquer)(递归式问题解决方法):快速排序 DC原理: 找出简单的基线条件 确定如何缩小问题的规模,使其符合基线条件 快速排序:寻找基准值;将数组分成两个子数组;对子数组进行快速排序 复杂度:O(NlogN) 选择数组第一个元素作为基准值: 快
阅读全文
摘要:前三章是打基础的,后面介绍的是应用广泛的算法。书中代码均用Python 2.7编写 一、算法简介 算法是一组完成任务的指令 书中介绍算法的流程:描述算法 示例代码 大O()讨论运行时间 可以解决的问题 要明白不同算法的 优缺点,还要知道采用不同的数据结构结果可能大不相同。所以,算法和数据结构是不分家
阅读全文
摘要:数据结构:大量数据的组织方法; 算法分析:算法运行时间的估算。涉及到计算效率。 设想,如果能把时间限制从16年减至不到1秒,不很神奇吗? 在很多问题中,一个重要的观念是:写出一个可以工作的程序并不够。如果这个程序在巨大的数据集上运行,运行时间就成了重要的 问题。 算法,是为求解一个问题需要遵循的、被
阅读全文
摘要:队列:先进先出的数据结构,有点像排队买票 它只允许在队列的首部(head)进行删除操作,称为“出队”;在队列的尾部(tail)进行插入操作,称为“入队” 栈,是后进后出的数据结构
阅读全文
摘要:为何叫桶排序呢? 想像标号0-10的桶初始化0(数据范围在0--10之间),每出现一个号就在相应的桶中增加1,最终按顺序显示数组, 那么 就是最终的排序了 for (j = 1;j <= a[i];j++) { printf("%d", i); printf(" "); } 桶排序问题: 桶空间浪费
阅读全文
摘要:贪婪法,也叫贪心算法,用于求问题的最优解。而此问题的解决是由一系列阶段组成。 贪婪法在求解过程的每一个阶段都选取一个在该阶段看似最优的解,然后把每一个阶段的结果合并起来形成一个全局解。 贪婪法并不是对所有问题都能得到最优解。 在日常生活中,经常用贪婪法来寻求问题 的解。 如如何把孩子培养成为一个优秀
阅读全文
摘要:贯彻“算法+化整为零”,逐步调试 占位符的问题:void return; int return0; bool return true/false; 程序运行结果: enter value:4enter value:33enter value:556enter value:26enter value:
阅读全文