分类:数据结构与算法

数据结构与算法

简述洗牌算法

cambrian.render('head')扑克牌一共有54张,洗牌是将扑克牌顺序打散。那么问题很简单,设计一个算法,实现洗牌的功能,利用自带的RAND函数 全局洗牌 初始化一个数组,大小为54,初始化值为1~54 按照索引1到54,逐步对每一张索引牌进行洗牌 首先生成一个随...

yan 2016 年 2 月 6 日 590℃ 2评论 40喜欢

随机函数扩大,如rand5()构造rand7()

cambrian.render('head')引例 利用random(0,1)产生0或1,从而组成二进制数,来完成random(a,b)的实现 解决办法:运行random(0,1)函数k次,使得2k>=(b-a+1),将得到[0,2k)的整数区间,如何将[0,2k)映射到[...

yan 2015 年 7 月 20 日 2036℃ 4评论 2喜欢

Java实现KMP算法

cambrian.render('head') package arithmetic; /** * Java实现KMP算法 * * 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针, * 而是利用已经得到的“部分匹...

yan 2015 年 4 月 20 日 1872℃ 2评论 0喜欢

二分查找的时间复杂度,最大查找次数

cambrian.render('head')二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比...

yan 2015 年 3 月 23 日 3172℃ 1评论 0喜欢

单链表中有关环及环的链接点的相关问题

cambrian.render('head')问题:给定一个单链表,只给出头指针h: 如何判断是否存在环? 如何知道环的长度? 找出环的连接点在哪里? 环链表的长度是多少? 解决 问题1:使用追赶的方法,设定两个指针slow、fast,从头指针开始,每次分别前进1步、2步。...

yan 2015 年 2 月 25 日 554℃ 0评论 0喜欢

树——多路数,B树、B-树、B+树、B*树

cambrian.render('head')暂且只研究树的基本内容,大致按如下分类: 故本博只讨论:二叉查找树、二叉堆、AVL平衡树、多路数(见本文) 名词解释 B树:二叉查找树,每个结点只存储一个关键字,等于则命中,小于走左结点,大于走右结点; B-树:多路搜索树,每个结...

yan 2015 年 2 月 22 日 1057℃ 0评论 0喜欢