
算法练习
文章平均质量分 50
小键233
生活才是我的职业,而程序员,那只是我的副业
==
展开
-
银行家算法问题
银行家算法问题。原创 2015-04-27 16:40:55 · 945 阅读 · 0 评论 -
埃拉托色尼筛算法
只是一些比较简单的算法实现,记录下来以便以后查看埃拉托色尼筛算法 初始化2-n的连续整数序列,然后从2到√n的循环中,消去其倍数,如第一次循环中,消去4和6这样的数字。#include<iostream>using namespace std;void f(){ int n; do { cin>>n; }while(n<2);原创 2015-09-03 17:09:26 · 673 阅读 · 0 评论 -
JohnsonTroter 排列生成算法
只是一些比较简单的算法实现,记录下来以便以后查看JohnsonTroter 排列生成算法 将第一个排列初始化, while 存在一个可移动元素k do, 求最大的移动元素k, 把k和它箭头指向的相邻元素互换, 调转所有大于k的元素的方向, 将新排列添加到列表。#include<iostream>using namespace std;struct A{ int n原创 2015-09-03 16:57:03 · 629 阅读 · 0 评论 -
N 个骰子的点数
直接参考原著: 程序员面试题精选100题(43)-n个骰子的点数[算法] 循环的解法比较巧妙,mark一下。转载 2016-03-16 14:54:59 · 340 阅读 · 0 评论 -
约瑟夫环问题--递归推导
本文为学习《剑指offer》的记录。因其原理在原作者博客上找不到,所以,只能自己编写记录,如有不当之处,欢迎指正。题目描述: n个数,编号为 0 , 1, ……, n-1 排成一个圆圈,从数字 0 开始,每次从这个圆圈中删除第 m 个数,请问最后一个剩下的数是多少?推导过程 定义一个函数 f(n, m) 为 n 个数中取 m 最后剩下的编号。 第一个被删除的数是 (m-1)%n, 记为 k 。转载 2016-03-16 15:43:23 · 3320 阅读 · 2 评论 -
快速幂算法
原文:快速求幂算法 快速求正整数次幂 2007-05-05 12:21 快速求正整数次幂,当然不能直 接死乘。举个例子:3 ^ 999 = 3 * 3 * 3 * … * 3直接乘要做998次乘法。但事实上可以这样做,先求出2^k次幂:3 ^ 2 = 3 * 3 3 ^ 4 = (3 ^ 2) * (3 ^ 2) 3 ^ 8 = (3 ^ 4) * (3 ^ 4) 3 ^ 16 = (转载 2016-03-10 15:31:10 · 361 阅读 · 0 评论 -
栈的输出队列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。我的看法: 一个比较直观的方法就是,用一个辅助栈模拟弹出栈的过程。 比如说,顺序压入序列一时,当栈顶元素为4时,则弹出4,接着原创 2016-03-12 13:55:54 · 2611 阅读 · 0 评论