i3geek.com
闫庚哲的个人博客

数据结构与算法

数据结构与算法

简述洗牌算法

yan阅读(933)评论(2)赞(1)

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

Java实现KMP算法

yan阅读(2320)评论(2)赞(0)

package arithmetic; /** * Java实现KMP算法 * * 思想:每当一趟匹配过程中出现字符比较不等,不需要回溯i指针, * 而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远 * 的一段距离后,继续进行...

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

yan阅读(7363)评论(1)赞(0)

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

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

yan阅读(850)评论(0)赞(0)

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

树——多路数,B树、B-树、B+树、B*树-爱上极客

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

yan阅读(2003)评论(0)赞(0)

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