算法-经典趣题-舍罕王赏麦

舍罕王赏麦问题是古印度非常著名的一个级数求和问题。传说国际象棋的发明者是古印度的西萨·班·达依尔。那时的国王是舍罕,世人称为舍罕王。当时舍罕王比较贪玩,位居宰相的西萨·班·达依尔便发明了国际象棋献给舍罕王。舍罕王非常喜欢,为了奖励西萨·班·达依尔,便许诺可以满足他提出的任何要求。西萨·班·达依尔灵机一动,指着8×8=64的棋盘说:“陛下,请您按棋盘的格子赏赐我一点麦子吧,第1个小格赏我一粒麦子,第2个小格赏我两粒,第3个小格赏四粒,以后每一小格都比前一个小格赏的麦粒数增加一倍,只要把棋盘上
阅读全文

算法-经典趣题-三色旗

三色旗的问题最早由E.W.Dijkstra所提出,大致意思如下:有一条绳子上面挂有白、红、蓝三种颜色的多面旗子,这些旗子的排列是无序的。现在要将绳子上的旗子按蓝、白、红三种颜色进行归类排列,但是只能在绳子上进行旗子的移动,并且每次只能调换两个旗子。问如何采用最少的步骤来完成三色旗的排列呢?
阅读全文

算法-经典趣题-新郎和新娘

新郎和新娘问题是非常典型的智力推理问题。新郎和新娘问题的大意如下:有三对新郎和新娘参加集体婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。主持婚礼的人一时间忘了谁应该和谁结婚。于是,他便问参加婚礼的6个人中的三个,得到的回答如下:新郎A说他将和新娘X结婚;新娘X说她将和新郎C结婚;新郎C说她将和新娘Z结婚。聪明的主持人知道他们在与他开玩笑,但是,此时主持人已经推算出了谁应该和谁结婚。那么,到底是谁应该和谁结婚呢?
阅读全文

数据结构和算法-数学问题-最大公约数

最大公约数,也称最大公因数、最大公因子,指两个或多个整数共有约数中最大的一个。如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。约数和倍数都表示一个整数与另一个整数的关系,不能单独存在。比如,只能说8是某数的倍数,2是某数的约数,而不能孤立地说8是倍数,2是约数。
阅读全文

数据结构和算法-线性查找-二分查找

折半查找(Binary Search)又称为二分查找,其要求数据序列呈线性结构,也就是经过排序的数据序列。对于没有经过排序的数据序列,可以先进行排序操作,然后执行折半查找操作。它是一种效率较高的查找方法。但二分查找有一定的条件限制:要求线性表必须采用顺序存储结构,且表中元素必须按关键字有序(升序或降序均可)。
阅读全文

如何区分数据结构中的线性结构与非线性结构?

#如何区分数据结构中的线性结构与非线性结构?
阅读全文

基本数据结构和算法

基本数据结构和算法
阅读全文

数据结构和算法-线性查找-顺序查找

什么是顺序查找呢?顺序查找就是遍历整个数据列表,逐个元素与给定值比较,若某个元素和给定值相等,则查找成功。如果直到最后一个元素和给定值比较都不相等,则查找失败。
阅读全文

基本算法思想

对于我们开发者来说,学习一门程序语言比较容易,难的是如何编写一个高质量的程序。算法可以说是程序的灵魂,一个好的算法往往可以化繁为简、高效率地求解问题。因此,开发者应该重点掌握各种算法思路,并在学习和工作中不断总结算法经验。
阅读全文

算法-经典趣题-窃贼问题

窃贼问题是一个典型的最优解的问题。窃贼问题的大意如下:有一个窃贼带着一个背包去偷东西,房屋中共有5件物品,其重量和价值如下。
阅读全文