随笔分类 -  C && C++

摘要:归并排序(Merge sort)是创建在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。算法描述:将待排序数据分为两部分(递归调用归并排序)。对两部分数据进行归并操作。时间复杂度:T(N) = 2 * T(N/2) + cN = 2... 阅读全文
posted @ 2015-02-15 23:57 HelloMichaelWong 阅读(314) 评论(0) 推荐(0)
摘要:问题陈述: 给定N个整数的序列{A1, A2, ... , AN},求函数ƒ(i, j) = max{0, Ai + Ai+1 + ... + Aj}(1 maxSum){ 8 maxSum = currentSum; //更新maxSum 9 ... 阅读全文
posted @ 2015-02-15 15:04 HelloMichaelWong 阅读(4239) 评论(2) 推荐(0)
摘要:插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向... 阅读全文
posted @ 2015-02-14 21:12 HelloMichaelWong 阅读(207) 评论(0) 推荐(0)
摘要:问题陈述: 现有八枚银币a b c d e f g h,已知其中一枚是假币,其质量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,判断出哪枚是假币,并得知假币比真币较轻或较重?问题解法: 单求假币的问题并不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可... 阅读全文
posted @ 2015-02-14 14:15 HelloMichaelWong 阅读(636) 评论(0) 推荐(0)
摘要:问题陈述: 国际象棋中的皇后可以直线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上?问题解法: 关于棋盘的问题,都可以用递归求解,然而如何减少递归的次数?在八皇后问题中,不必要检查所有的格子,例如若某列检查过,该列的其它格子就不用检查了,这种方法称为分支修... 阅读全文
posted @ 2015-02-13 20:12 HelloMichaelWong 阅读(931) 评论(0) 推荐(0)
摘要:问题陈述: 杭州电子科技大学 HANGZHOU DIANZI UNIVERSITY Online Judge Problem - 1008问题分析: 简单题。代码详解: 1 #include 2 #include 3 4 using namespace std; 5 6 int main... 阅读全文
posted @ 2015-02-11 23:30 HelloMichaelWong 阅读(350) 评论(0) 推荐(0)
摘要:问题陈述: 骑士游历(Knight tour)在十八世纪初备受数学家与拼图迷的注意,究竟它是什么时候被提出已不可考。骑士的走法为国际象棋的走法,类似中国象棋的马,骑士可以由任意一个位置出发,他如何走完所有的位置?问题解法: 骑士的走法,基本上可以用递归的方法来解决,但是纯粹的递归在维度大时相当没... 阅读全文
posted @ 2015-02-11 22:52 HelloMichaelWong 阅读(3105) 评论(0) 推荐(0)