简单算法
摘取天上星
暂无描述……
展开
-
斐波那契数列(兔子数列)
学编程的人肯定接触过“斐波那契数列”和“约瑟夫环”,这里给出两种代码的写法意思不在于体会不同。而是要找到方法。也就是我们所说的数据结构和算法。基础很重要,以此告诫自己莫要追逐PHP华丽的函数。 F(n)=f(n-1)+f(n-2) F(1)=1 F(2)=1 PHP代码:<?php // 斐波那契数列 $arr = array(1,1);翻译 2012-11-19 17:01:32 · 1935 阅读 · 0 评论 -
弃九数字和
(选自《数论妙趣——数学女王的盛情款待》第八章 数码与9的魔术)我们知道,一个正整数,各个数位上数字的和,叫做这个数的数字和。如果在计算数字和的时候,舍弃9的倍数,所得的结果就叫做这个数的“弃九数字和”。求一个数的弃九数字和,有三种方法:第一种方法:在求出这个数的数字和之后,从中减去9的倍数;第二种方法:在计算数字和的过程中,随时舍去9的倍数;第三种方法:求原创 2013-11-02 17:08:39 · 1732 阅读 · 0 评论 -
概率算法
一、随机数 随机数在概率算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在概率算法中使用的随机数都是一定程度上随机的,即伪随机数。线性同余法是产生伪随机数的最常用的方法。由线性同余法产生的随机序列a0,a1,…,an满足 其中b >= 0,c >= 0,d 二、数值概率算法1、用随机投点法计算pi值 设有一半径为r的圆及其外切四边形。向该翻译 2013-11-02 17:03:02 · 2208 阅读 · 0 评论 -
11111…111
(选自《数论妙趣——数学女王的盛情款待》第十一章 11111…111)由清一色的1重复有限次所组成的数11111…111,引起人们很大的兴趣。这样的数可以称为“重一数”。人们为了求出重一数的因子花掉不少时间。这类数可以记为 10x+10x-1+10x-2+…+102+10+1。 这是在求一个等比数列100,101,102,…,10x-1,10x之和。根原创 2013-11-02 17:07:30 · 4983 阅读 · 1 评论 -
传说中年薪25万的面试题
问:给定数字1~100,000,000数字中,计算1出现的次数,如数字11(1出现两次)答:1、加上数字0,不影响结果(0没有包含数字1)2、100,000,000,1出现1次3、计算 0 ~ 99,999,999中1的次数,该问题等价于 00,000,000 ~ 99,999,999数字中1出现的次数(总数字个数为100,000,000),该问题,可进一步分解为8个情况:原创 2013-10-31 16:37:10 · 1346 阅读 · 0 评论 -
腾讯2014软件开发笔试题目
腾讯2014软件开发笔试题目 -----9月21日,腾讯2014软件开发校招-简答题-广州简答题:1、请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在 中所处的位置和变化。队伍可能随时有人加入和退出,当有人退出影响到用户的位置排转载 2013-10-09 15:48:41 · 1415 阅读 · 0 评论 -
二维数组——两个数和的最大值
二维数组---两个数和的最大值problem: 给定一个二维数组,找两个数使其和为最大的,要求这两个数不同行不同列。solution: 把二维数组转换为一维数组,那么一维数组的长度为N = ROW * COL,假设二维数组a[2][3] = { {1, 3, 1}, {2, 4, 5} };那么其二维数组为b[6] = { 1, 3, 1, 2, 4, 5 };转载 2013-10-09 15:53:18 · 1946 阅读 · 0 评论 -
PHP实现冒泡排序、双向冒泡排序算法
冒泡排序(Bubble Sort),是一种较简单的、稳定的排序算法。冒泡排序算法步骤:比较相邻的元素,如果第一个比第二个大,就交换他们两个的位置;对每对相邻的元素执行同样的操作,这样一趟下来,最后的元素就是最大的;除了已得出来的最大元素,把剩余的元素重复前面步骤,直到没有元素再需要比较为止,这样排序就完成了。冒泡算法,在最好情况下,时间复杂度为O(n);在最坏情况下,时间复杂度为O(n2);平均时翻译 2013-06-27 16:22:57 · 1877 阅读 · 0 评论 -
PHP实现快速排序算法
快速排序(Quick Sort)是对冒泡排序的一种改进,属不稳定排序算法,由东尼·霍尔在1962年提出。快速排序基本步骤:从数列中挑出一个元素(一般称为称为“基准”),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比基准小,另外一部分的所有数据都比基准大,与基准相等的数据可放在两部分中的任一部分,然后再按此方法递归地对这两部分数据分别进行处理,以达到整个数据变成有序序列。快速翻译 2013-06-27 16:20:55 · 1548 阅读 · 0 评论 -
PHP实现插入排序算法
插入排序(Insertion Sort),是一种较稳定、简单直观的排序算法。插入排序的工作原理,是通过构建有序序列,对于未排序的数据,在有序序列中从后向前扫描,找到合适的位置并将其插入。插入排序,在最好情况下,时间复杂度为O(n);在最坏情况下,时间复杂度为O(n2);平均时间复杂度为O(n2)。插入排序示例图:PHP实现插入排序算法1234翻译 2013-06-27 16:26:30 · 1519 阅读 · 0 评论 -
PHP实现栈(Stack)数据结构
栈(Stack),是一种特殊的后进先出线性表,其只能在一端进行插入(插入一般称为压栈、进栈或入栈)和删除(删除一般称为弹栈、退栈或出栈)操作,允许进行插入和删除操作的一端称为栈顶,另一端则称为栈底。栈,按照后进先出的原则存储数据,先进入的数据被压入栈底,后进入的数据则在栈顶,需要读取数据的时候,从栈顶开始弹出数据。当栈中没有元素时,称为空栈。数据结构与算法(PHP实现) - 栈(S翻译 2013-06-27 16:25:11 · 2403 阅读 · 0 评论 -
ODOA(1) 翻转句子中单词的顺序(C语言实现)
今天先做一个简单的问题。问题描述:翻转句子中单词的顺序输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理例如:输入“I am a student.”,则输出“student.a am I”。[cpp] view plaincopy/* Name: reverse.h Author: suzhou Date:转载 2014-05-16 18:59:40 · 2219 阅读 · 0 评论