
Java算法笔记
iteye_537
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1到1亿间所有自然数的各位数字的和
1到1亿之间所有自然数的数字(如18559为1+8+5+5+9)相加,其和会是多少呢? 解1: 分析:两数相加如果有进位,则两数数字之和大于和的各位数字之和。 例如:23+46=69,2+3+4+6=6+9;而97+8=105,9+7+8>1+0+5。 所以,要把1——100000000这样分组:(0,99999999),(1,99999998),(2,99999997)(3,...原创 2012-02-25 22:07:54 · 975 阅读 · 0 评论 -
字符串匹配
1.朴素的模式匹配算法( O(n+m)~O(nXm) [code="java"]/** * @param sStr 源字符串 * @param tStr 比较字符串 * @return int */ public static int getIndex(String sStr, String tStr) { if (tStr.length() > sStr.le...原创 2014-10-13 12:55:28 · 110 阅读 · 0 评论 -
快速排序
快速排序:快排是一种不稳定的算法,其平均时间复杂度为O(nlgn),最坏为O(n^2)。 设当前待排序的无序区为R[low..high],那么在R[low..high]中任选一个记录作为基准(Pivot),以此基准将当前无序区划分为左、右两个较小的子区间R[low..pivotpos-1]和R[pivotpos+1..high],并使左边子区间所有记录的值小于等于基准值,右边子区间所有记录的值...2014-10-15 20:35:53 · 101 阅读 · 0 评论 -
单链表倒置
单链表倒置 package arithmetic.line; /* * 单链表倒置 * * @author alchimie */ public class ReverseSingleLinked { // 倒置传入的单链表 public static SingleLinkedNode getReverseSingleLinked(SingleLink...原创 2014-10-17 19:08:20 · 392 阅读 · 0 评论 -
随机快速排序
快速排序的基准数随机选择版本: package arithmetic.sort; import java.util.Arrays; import java.util.Random; /** * * @author alchimie * * 随机快速排序(不稳定) * */ public class RandomQuickSort { Ran...2014-10-25 15:00:25 · 138 阅读 · 0 评论 -
给定一个函数rand5()用其生成等概率的rand7()
8月份遇到的一个面试题,整理了下解法: /** * 题目:给定一个函数rand5(),该函数可以随机生成1-5的整数,且生成概率一样。现 * 要求使用该函数构造函数rand7(),使函数rand7()可以随机等概率的生成1-7 * 的整数。 * * 解题:这种思想是基于,rand()产生[0,N-1],把rand()视为N进制的一位数产生器, *...2014-10-25 15:30:44 · 739 阅读 · 0 评论