数据结构
wesen12
风吹过的地方
展开
-
快速排序- Java
/** * @author: wesen * @data:2021/5/19 上午1:44 * @des:快排::) * 思想:分治,分成两个数组,每个数组的左边比基数小,右边比基数大; **/public class QS { //分——先从右往左比,直到遇到比基数小的数停下来,然后从右往左比,遇到比基数大的数字停下来,然后交换左右哨兵所在位置的数; //这里实现有几个注意的地方:需要记录三个值:左右哨兵(通过循环指示量来控制);基数值;当基数选取左边值得时候,同时要先移动.原创 2021-05-19 12:25:21 · 98 阅读 · 0 评论 -
单词查找&单词纠错-字典树(Java实现)
问题1,如何判断一个英文单词拼写是否正确问题描述:例如一个用户输入了一个字符串:hellu,那它是不存在于字典中的,那么我们怎么判断出来呢?要求:(1)定义存储所有正确单词的数据结构。(2)写一个录入单词的函数。(3)写一个判断用户输入的单词是否正确的函数。注:忽略大小写,可以认为都是小写。问题2,如何对拼写错误的单词进行纠错问题描述:出错的情况下,提示出正确的单词(可能有多个)。出错的情况很多,前中后的位置都有可能出错,可能错一个字母,也可能多一个或少一个字母。...原创 2020-10-23 11:13:28 · 1594 阅读 · 1 评论 -
散列表详解
目录原理散列函数 冲突 链接法 开放寻址法 散列表也就是哈希表,是实现字典操作的一种数据结构:也就是说通过散列表可以实现键值对方式存取数据;散列表在理想情况下实现查找操作的时间复杂度将为O(1)——直接通过关键字即可查找到其存储位置;原理 散列表的原理:对于需要存储的n个对象,每个对象都有自己的关键字作为索引...原创 2019-09-10 21:29:32 · 496 阅读 · 0 评论 -
网络最大流问题求解方法及实现
最大流问题在解决最大流问题中,我们需要求解就是在一个给定的流网络中找出最大流(同时给定源点和汇点)具有多个源点和汇点的流网络问题的求解在求解最大流问题时我们可能遇到具有多个源点和汇点的流网络,这时我们通过添加一个超级源点和汇点的方法将多个源点和汇点转化为一个源点和汇点;使用反平行边来描述问题在实际问题分析中,如果需要对同一条网络上路径上的正反两个方向同时建模,为了不违反...原创 2018-08-03 13:35:04 · 4691 阅读 · 0 评论 -
递归算法的递归式及其求解方法
在渐进符号的学习中我们可以通过将一个基本算法的运行时间即其基本步骤执行次数表示为问题规模的函数进而求出运行时间的一个渐近紧确解,但是如果在算法中存在递归的情况时我们发现很难写出这样的一个多项式用来准确描述问题规模与基本步骤的次数的关系,这时候,递归式就显得很有用处; 递归式,就是用来描述递归算法运行时间的一个等式或者不等式,它通过的 更小的输入上的函数值(即上一层递归调用的时间代价)来描述本层...原创 2018-07-27 14:45:22 · 12133 阅读 · 2 评论