随笔分类 - 数据结构和算法
摘要:clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick ,即“时钟打点”。 常数CLK_TCK:机器时钟每秒所走的时钟打点数。 实验_eg:执行下面打印一次“Hello World!”的时间 注意:因为程序执行的太快,所以显示为0; 解决方案:让被
阅读全文
摘要:1.for循环实现 2.递归实现(有问题,思考——算法的执行效率与输入规模的关系)
阅读全文
摘要:题目: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如: 序列:-2 11 -4 13 -5 -2,则最大子序列和为20。 序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。 1. 2. 将代码进行以下修改
阅读全文
摘要:汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
阅读全文
摘要:1.递归算法的定义: 2.递归与迭代的优劣 eg1:斐波那契数列:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、1
阅读全文
摘要:题目描述 围绕着山顶有10个洞,一只狐狸和一只兔子各住一个洞。狐狸总想吃掉兔子。一天兔子对狐狸说:“你想吃我有一个条件,先把洞从1~10编上号,你从10号洞出发,先到1号洞找我;第二次隔1个洞找我,第三次隔2个洞找我,以后依此类推,次数不限。若能找到我,你就可以饱餐一顿。不过在没有找到我以前不能停下
阅读全文
摘要:1 #include 2 #include 3 4 int leap_year(int year){ 5 if(year%400==0 || (year%4==0 && year%100!=0)){ 6 return 1;//是闰年 7 }else{ 8 return 0;//不是闰年 9 } 10 } 11 12...
阅读全文
摘要:冒泡排序算法的运作如下:(从后往前) 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字
阅读全文
摘要:质数:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。 题设:输入一个大于1的自然数,求出从2到该数之间所有的质数。 1. 按照素数的定义来求取,用两个for循环。 2. 对 1 进行优化,先排除可以被2整除的数(
阅读全文
摘要:1. 二分法查找 前提: 数据是排好序的。 题设:给出一个有序arr,从中找出key,arr的区间是array[ low , higt]. 步骤: (1)mid=(low+high)/2 (2)array[mid]与key 比较,若相等,返回mid。 (3)if array[mid]>key,则在a
阅读全文
摘要:1.树的定义: (1)有且只有一个称为根的节点。 (2)有若干个互不相交的子树,这些子树本身也是一棵树。 eg: 2.通俗的定义: (1)树由节点和边组成。 (2)每个节点只有一个父节点但可以有多个子节点。 (3)根节点没有父节点。 3.树的一些名词: (1)节点 (2)父节点 (3)子节点 (4)
阅读全文