![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 66
wang_bird
这个作者很懒,什么都没留下…
展开
-
冒泡排序
把一个表排列成升序(从小到大排序):一次次比较相邻的元素,若相邻元素顺序不对,就交换相邻元素。为了完成冒泡排序,执行基本操作,即交换一个较大的元素与其后的较小的元素,从表的头部开始,对整个表执行一遍;让这个过程迭代(执行几遍),直到排序宣告完成为止。在冒泡排序里,当较小的元素与较大的元素交换时,较小的元素就“冒泡”到顶上,较大的元素则“下沉”到底下。 例 用冒泡排序把转载 2012-01-20 16:10:08 · 445 阅读 · 0 评论 -
贪心算法
在每一步都选择看起来"最好的"选项的算法称为贪心算法这种算法在每一步都选择最好的选项,而不考虑可能导致最优解的所有步骤序列。例 考虑用25美分、10美分、5美分和1美分硬币找n美分零钱的问题,使硬币总数尽可能少。 可以设计一个找n美分零钱的贪心算法,在每一步都做局部最优的选择。即在每一步选择可加入已找零钱中不超过n美分的最大面值的硬币。例如要找67美分零钱,首先选择一个25美分转载 2012-01-21 10:41:12 · 386 阅读 · 0 评论 -
线性搜索算法
算法时间复杂度:θ(n) 问题:在不同元素a1,a2,...,an的表中为元素定位,或判定x不在该表中。这一搜索问题的解是表中等于x的那一项的位置(即,若x=ai,那么i就是解),或当x不在表中时解为0。线性搜索算法从比较x和a1开始。若x=a1,那么解就是a1的位置,也就是1。 当x≠a1时,比较x和a2。转载 2012-01-20 10:30:27 · 5266 阅读 · 0 评论 -
二分搜索
算法时间复杂度:θ(logn) 前提条件:当表中各项以升序出现时可以用这一算法。(例如,若各项为数字,则按从最小到最大顺序排列;如果各项是单词,则可以按字典序或字母排列)。这个算法比较要搜索的元素与表的中间项。然后此表就分成两个较小的长度相等的子表,或许其中有一个比另一个少一项。根据与中间项的比较结果,搜索将限于在两个子表中的一个进行。例 要在表1,2,3,5,6,7,8转载 2012-01-20 14:15:38 · 391 阅读 · 0 评论 -
插入排序
待排序的数也称为关键字(key)插入排序的工作机理与打牌时,整理手中牌时的做法差不多。在开始摸牌时,我们的左手是空的,牌面朝下放在桌上。接着,一次从桌上摸起一张牌,并将它插入到左手一把牌中的正确位置上。为了找到这张牌的正确位置,要将它与手中已有的每一张牌从右到左地进行比较,无论在什么时候,左手中的牌都是排好序的,而这些牌原先都是桌上那副牌里最顶上的一些牌。伪代码例 排序转载 2012-01-20 16:47:45 · 291 阅读 · 0 评论