algorithm
daheiantian
这个作者很懒,什么都没留下…
展开
-
回溯法解决“八皇后”问题
Technorati 标签: 回溯法,backtrack,八皇后,eight queens puzzle “回溯法”和“八皇后”问题本身不再多做介绍,相信很多人都知道,尤其是学习过数据结构的人。如果还不清楚可以google或者baidu一下,亦或是找本数据结构的书看一下。 “八皇后”问题:可以简单的理解为在一个8*8的棋盘上,放8个旗子(国际象棋中称为皇后queen),要求这8个棋子中任意两个都不在同一行、列、斜线上。 “回溯法”用在这里的思路是:原创 2011-01-23 12:47:00 · 2507 阅读 · 0 评论 -
为什么用 递归 计算“阶乘”和“斐波那契数列”是不合适的?
Technorati 标签: 递归,阶乘,斐波那契数列,fibonacci 《C和指针》的作者Kenneth A. Reek说,他认为这是很不幸的:“计算阶乘时不能提供任何优越之处;在斐波那契数列中,使用递归效率非常非常低”。 对于计算斐波那契数,使用递归和使用迭代的效率有可能相差几十万倍。原创 2011-01-12 14:41:00 · 4702 阅读 · 1 评论 -
N人围圈,报数删除问题(约瑟夫问题)
N人围圈,报数删除问题,也就是“约瑟夫问题” 这是个比较简单,但却比较经典的问题。问题描述:n 个人围成一圈报数,报到 m 的人出列,要求计算删除顺序,并找到最后剩下的那个人。原创 2011-02-27 12:39:00 · 6364 阅读 · 1 评论 -
最大子序列和问题 一步一步到最优
对于 一个求“最长子序列和”的问题,逐步深入分析,给出共四种方法,时间复杂度 从O(n^3), 到O(n^2), 到O(n*logn), 到O(n)。原创 2011-03-03 12:41:00 · 3106 阅读 · 1 评论 -
从一个计算 数组累加和 的小程序看 程序性能优化 的小技巧
从一个计算 “数组累加和” 的小程序看 “程序性能优化” 的小技巧。 主要包括以下几条: 1. 避免多余的函数调用; 2. 避免多余的条件判断和边界检查; 3. 利用局部变量保存中间计算结果;原创 2011-02-23 12:45:00 · 4437 阅读 · 0 评论 -
探讨关于 整数除法 和 取余 的映射规律
一、引子问题: 一个简化的日期问题: 假设每一个月都是30天。假设盘古开天辟地的时候,是计算时间的开始(按照习惯,该天成为第1天,但是注意在程序中,表示的数字并不一定是1)。这里要计算的问题是:给定一个是从世界开始的一个总天数,让你计算该天属于从世界开始的第几个月,并且在该月中是第几天?二、初步分析: 看了上面的问题,是不是觉得非常简单?是的,确实非常简单,原创 2011-03-14 12:41:00 · 3651 阅读 · 1 评论 -
表达式求值(中缀表达式——后缀表达式——求值)
表达式求值,属于数据结构——栈的典型应用。使用后缀表达式的与原因,是因为在求值的过程中,不需要考虑操作符的优先级。(结合性仍需要考虑) 但是一般的书上只讲到如何处理二元操作符,并且结合性都是从左到右结合的。这里的实现能够处理一元操作符,并且能够处理从右向左结合的幂乘^操作符。功能需求 给定一个中缀表达式,求出该表达式的值。原创 2011-03-19 12:50:00 · 9891 阅读 · 6 评论 -
常见排序算法
索引1. 插入排序 1.1 直接插入 1.2 折半插入 1.3 希尔排序 2. 交换排序 2.1 冒泡排序 2.2 快速排序 3. 选择排序 3.1 直接选择 3.2 堆排序 4. 归并排序 4.1 迭代归并 总结 1. 插入排序 思想:每步将一个待排序的对象, 按其排序码大小, 插入到前面已经排好序的一组对原创 2011-03-24 12:51:00 · 2210 阅读 · 0 评论