易网时代-编程资源站
Welcome
首页
/
软件开发
/
数据结构与算法
解密回文——栈
2017-02-05
14
解密回文——栈2015-10-22上一节中我们学习了队列,它是一种先进先出的数据结构。还有一种是后进先出的数据结构它叫做栈。栈限定只能在一端进行插入和删除操作。比如说有一个小桶,小桶的直径只能放一个小球,我们现在向小桶内依次放入2号、1号、3号小球。假如你现在需要拿出2号小球,那就必须先将3号小球拿出,再拿出1号小球,最后才能将2号小球拿出来。在刚才取小球的过程中,我们最先放进去的小球最后才能拿出来,而最后放进去的小球却可以最先拿出来。这就是后进先出,也可...
冒泡、二分法插入及快速排序算法
2017-02-05
15
冒泡、二分法插入及快速排序算法2015-10-221.冒泡排序算法过程:1.遍历整个数组,每两两相邻的元素进行比较,如$a[$i]>$a[$i+1]则互换位置,每次比较消除一个逆序。2.每一次循环后,下次再需要循环的次数减少1。<?php// 冒泡排序$arr = createarr(20);printarr($arr);popsort($arr);printarr($arr);function createarr($num=10){$arr ...
只有五行的Floyd最短路算法
2017-02-05
15
只有五行的Floyd最短路算法2015-10-22暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如下图。为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程。上图中有4个城市8条公路,公路上的数字表示这条公路的长短。请注意这些公路是单向的。我们现在需要求任意两个城市之间的最短路程,也就是求任意两个点之间的最短路径。这个问题这也被称为“多源最短路径”问题。现在需要一个数据结构来存储图的...
Lanczos算法概述
2017-02-05
13
Lanczos算法概述2015-10-24Lanczos Algorithm:Lanczos算法就是被设计用来做特征分解的,和其他类似的算法一样,获得的奇异向量都是很接近的(这里的翻译可能不对,immediate翻译为很快?和其他类似算法一样,获得奇异向量很快?这样翻译?)。矩阵A的奇异向量就是A^t * A 或者 A * A^t的特征向量。(这里A^t应该是矩阵A的转置么?特征向量应该是只有N*N的矩阵才有的,只有A的转置乘以A才能达到矩阵A是一个N*N...
不用加减乘除做加法的算法
2017-02-05
16
不用加减乘除做加法的算法2015-10-24题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。输入:输入可能包含多个测试样例。对于每个测试案例,输入为两个整数m和n(1<=m,n<=1000000)。输出:对应每个测试案例,输出m+n的值。样例输入:3 47 9样例输出:716思路:1、先将各bit位相加,不计进位,这一步可以用m^n实现2、加上进位,进位如何来,用m&n可以得到m和n中都为1的bi...
求1+2+...+n的算法
2017-02-05
13
求1+2+...+n的算法2015-10-24题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。输入:输入可能包含多个测试样例。对于每个测试案例,输入为一个整数n(1<= n<=100000)。输出:对应每个测试案例,输出1+2+3+…+n的值。样例输入:35样例输出:615这道题目确实很无聊,试着用java语言,构造方法来写,最...
如何实现快速排序算法
2017-02-05
13
如何实现快速排序算法2015-10-24快速排序:代码:<?php/** 快速排序算法 * 1. 在数组中找一个元素作为key,一般取数组第一个元素作为key * 2. i=0, j=数组长度-1 * 3. j-- 当 arr[j]<key, arr[i]与arr[j]交换位置 * 4. i++ 当 arr[i]>key, arr[i]与arr[j]交换位置 * 5. 重复3,4 直到 i==j 时,完成。 * 6. 将key分隔的左右两...
约瑟夫环的问题
2017-02-05
12
约瑟夫环的问题2015-10-26题目描述:每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为JOBDU的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为1的小朋友开始报数。每次喊到m的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续1...m报数....这样下去....直到剩下最后一个小朋...
如何数组中只出现一次的数字
2017-02-05
13
如何数组中只出现一次的数字2015-10-26题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入每个测试案例包括两行第一行包含一个整数n,表示数组大小。2<=n <= 10^6。第二行包含n个整数,表示数组元素,元素均为int。输出对应每个测试案例,输出数组中只出现一次的两个数。输出的数字从小到大的顺序。样例输入:82 4 3 6 3 2 5 5样例输出:4 6思路:上篇博文中已经了解到异或...
如何求扑克牌的顺子
2017-02-05
14
如何求扑克牌的顺子2015-10-26题目描述:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大小 王可以看成任何数字,并且A看作1,...
求和为定值的连续正数序列
2017-02-05
16
求和为定值的连续正数序列2015-10-26题目描述:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输入:输入有多组数据。每组数据仅包括1个整数S(S<=1...
编程算法之硬币问题 代码(C)
2017-02-05
14
编程算法之硬币问题 代码(C)2015-10-28题目: 有1, 5, 10, 50, 100, 500元硬币各若干枚, 现在要用这些硬币来支付A元, 最少需要多少枚硬币?假定本题至少存在一种支付方案.使用贪心算法, 优先选用最大的硬币, 并不断的调整硬币的数量.代码:/** main.cpp**Created on: 2014.7.17*Author: spike*//*eclipse cdt, gcc 4.8.1*/#include <stdio...
部分和问题算法 代码(C)
2017-02-05
13
部分和问题算法 代码(C)2015-10-28题目: 给定整数a1, a2, ..., an, 判断是否可以从中选出若干数, 使它们的和恰好为k.解法很多, 最简单的解法是使用深度优先搜索, 时间复杂度O(2^n), 不是最优解法.代码:/** main.cpp**Created on: 2014.7.13* *Author: Spike*//*eclipse cdt, gcc 4.8.1*/#include <stdio.h>bool dfs...
水洼的数量算法 代码(C)
2017-02-05
12
水洼的数量算法 代码(C)2015-10-28题目: 有一个大小为N*M的园子, 雨后起了积水. 八连通的积水被认为是连接在一起的. 请求出园子里总共有多少水洼.使用深度优先搜索(DFS), 在某一处水洼, 从8个方向查找, 直到找到所有连通的积水. 再次指定下一个水洼, 直到没有水洼为止.则所有的深度优先搜索的次数, 就是水洼数. 时间复杂度O(8*M*N)=O(M*N).代码:/** main.cpp**Created on: 2014.7.12* *...
迷宫的最短路径算法 代码(C++)
2017-02-05
16
迷宫的最短路径算法 代码(C++)2015-10-28题目: 给定一个大小为N*M的迷宫. 迷宫由通道和墙壁组成, 每一步可以向邻接的上下左右四格的通道移动.请求出从起点到终点所需的最小步数. 请注意, 本题假定从起点一定可以移动到终点.使用宽度优先搜索算法(DFS), 依次遍历迷宫的四个方向, 当有可以走且未走过的方向时, 移动并且步数加一.时间复杂度取决于迷宫的状态数, O(4*M*N)=O(M*N).代码:/** main.cpp**Created ...
如何左旋转字符串
2017-02-05
14
如何左旋转字符串2015-10-30题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!输入:多组测试数据,每个测试数据包含一个字符序列S和非负整数K。其中S的长度...
如何求二叉树深度
2017-02-05
12
如何求二叉树深度2015-10-30题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。输入:第一行输入有n,n表示结点数,结点号从1到n。根结点为1。 n <= 10。接下来有n行,每行有两个个整型a和b,表示第i个节点的左右孩子孩子。a为左孩子,b为右孩子。当a为-1时,没有左孩子。当b为-1时,没有右孩子。输出:输出一个整型,表示树的深度。样例输入:32 3-1 -1...
如何翻转单词顺序
2017-02-05
11
如何翻转单词顺序2015-10-30题目描述:JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他...
求数字在排序数组中出现的次数
2017-02-05
14
求数字在排序数组中出现的次数2015-10-30题目描述:统计一个数字在排序数组中出现的次数。输入:每个测试案例包括两行:第一行有1个整数n,表示数组的大小。1<=n <= 10^6。第二行有n个整数,表示数组元素,每个元素均为int。第三行有1个整数m,表示接下来有m次查询。1<=m<=10^3。下面有m行,每行有一个整数k,表示要查询的数。输出:对应每个测试案例,有m行输出,每行1整数,表示数组中该数字出现的次数。样例输入:81...
bs架构与cs架构的区别
2016-08-15
40
bs架构与cs架构的区别2016-08-14 本站 乖兔快跑1、b/s架构:其中,b代表browser(浏览器),s代表server(服务器),b/s架构即 浏览器/服务器架构。b/s架构的简单示意图:b/s架构中,浏览器和服务器之间使用http协议通讯。b/s架构的优点:只需要开发服务器端软件即可,工作量小,开发成本低。管理维护简单;产品升级便利;对用户的培训费用低;用户使用方便;出现故障的概率小。b/s架构的缺点:安全性不足;客户端不能随心变化,受到浏...
<<
121
122
123
124
125
126
127
128
129
130
>>
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图