前两天看到11年的一道阿里实习生笔试题,要求写一个Merge Sort,如下: 分析Merge Sort的原理以及算法复杂度,并用最擅长的编程语言实现Merge Sort。 当时自己第一反应是递归写。 打开E…
冒泡排序
冒泡排序的关键是相邻的位置进行比较。对N个数据需要重复N-1遍,每一遍需要比较N-1个数据。所以是双重嵌套循环。 时间复杂度 O(N2) for (int i = 0; i < N-1; i++) { for (i…
模取幂运算
这本来是5.1前写的一个算法,可是一直没写好。因为数论这里有点东西没弄清楚,导致这个小问题搁置了很久(也因为还有其他事情要做,摊子铺的太大了)。最近做事情注意力不够集中,效率比较低,…
辗转相除
//求最大公约数和最小公倍数辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约数最小公倍数等于两整数的乘积除最大公约数。 function gcd…
批处理作业调度问题
给定n个作业的集合J={J1,J2,…,Jn}。每一个作业有两项任务分别在两台机器上完成。每个作业必须先由机器1处理,再由机器2处理。作业Ji需要机器j的处理时间为tji,i=1,2,…n,j=1,2。对于一个确定的作业…
PHP队列--选举引发的一场血案
“花果山选举引发的一场血案” “自花果山美猴王齐天大圣孙悟空被如来压在五指山下,花果山无人管理,受尽周边恶霸的欺负,长老们意识到花果山不能一日无主,于是决定选举一位临时大王,由于猴子猴孙水平都不相上下,推选谁都难以平众愤…
Hash函数预览
转载(全文)地址:http://blog.csdn.net/zajin/article/details/12648587 最先进的非加密散列函数在过去几年中得到了快速推广。当我这周搜索的时候,我很高兴的看到新的尖端散列函…
腾讯2017暑假实习生编程题构造回文
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<…
使用“哨兵”减小时间复杂度
今天介绍一个很简单的算法,虽然简单,对于减少运行时间却有挺好 的效果。 问题描述:对一个数组,该数组存放的数各都不同,即有唯一性。 对该数组进行查找,返回数据对应为a的序号。 如data[4]=a,就返回一个4。 常规的…
循环移动字符串
最近钻研算法,找到一个不错的文章《程序员编程艺术》,作个笔记。  …
Leetcode习题:Distinct Subsequences
Distinct Subsequences Total Accepted: 2790 Total Submissions: 12196 My Submissions Give…
Uva1401/LA3942 Remember the Word(trie模板)
LRJ书上例题,但是自己在思考过程中挺有收获。。。。 UVA1401题目直达 题目大意是拆解字符串,有几种方法。 简单思路:设 dp[i] 为字符串从第i位开始的拆解方法;仔细一想的话就会发现这样的关系: dp[i]=∑…