文章分类 -  算法

摘要:概述 在程序设计中,经常需要将一组数列进行排序,这样更加方便统计与 查询。常用的排序方法有:冒泡排序、选择排序、插入排序、快速排序等。 排序算法的分类: 稳定排序:假设在待排序的文件中,存在两个或两个以上的记录具有相同的关键字,在用某种排序法排序后,若这些相同关键字的元素的相对次序仍然不变,则这种排 阅读全文
posted @ 2018-06-14 19:06 Joe1991 阅读(110) 评论(0) 推荐(0)
摘要:一 算法的定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。 也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。 不同的算法可能 阅读全文
posted @ 2018-06-13 17:43 Joe1991 阅读(117) 评论(0) 推荐(0)
摘要:引入:从一个按照从小到大排列的数字列表中找到指定的数字,传统方式:使用遍历来处理,但效率太低。这里我们引入另外一种方法--二分法,可以极大低缩小问题规模。 看一个实际的例子:从给定列表中找到17的位置 二分法图解: 示例代码1: 示例代码2--获取索引 阅读全文
posted @ 2018-06-13 00:22 Joe1991 阅读(169) 评论(0) 推荐(0)
摘要:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 即:3个柱子 阅读全文
posted @ 2018-06-12 18:11 Joe1991 阅读(144) 评论(0) 推荐(0)
摘要:杨辉三角定义如下: 把每一行看做一个list,如何实现: 普通函数实现: 算法说明: 首先,对杨辉三角做一下分析:下一行的首末元素与上一行的首末元素相同,不同的是中间的元素依次等于上一行相邻两个元素的和。我们也可以想象下一行首末元素等于上一行首末元素加0。 1. L.append(0)对列表新增一个 阅读全文
posted @ 2018-06-12 16:56 Joe1991 阅读(98) 评论(0) 推荐(0)
摘要:著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... 普通函数实现斐波拉数列: 生成器方式实现斐波那契数列: 阅读全文
posted @ 2018-06-12 16:29 Joe1991 阅读(178) 评论(0) 推荐(0)