![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
你白勺男孩TT
这个作者很懒,什么都没留下…
展开
-
字符串匹配算法(RK)
比较两个字符串的哈希值来匹配原创 2021-06-01 15:04:30 · 244 阅读 · 0 评论 -
希尔排序
希尔排序:一种插入排序,是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序思路:如序列:9 8 7 6 5 4 3 2 1确定一个增量序列,如4(length/2) 2 1 ,从大到小使用增量使用第一个增量,将序列划分为若干个子序列,下标组合为0-4-8,1-5,2-6,3-7依次对子序列使用直接插入排序法使用第二个增量,将序列划分为若干个子序列(0-2-4-6-8),(1-3-5-7)依次对子序列使用直接插入排序法使用第三个增量1,这时子序列就是元序列(0原创 2021-05-27 14:24:06 · 66 阅读 · 0 评论 -
二分查找的递归解法
全范围内二分查找:等价于:1、左边找(递归)2、中间比3、右边找(递归)注意:左查找和右查找只选其一private static int binarySearch(int[] arr,int low,int high,int key) { if (low>high) { return -1; } int mid = low+((high-low)>>1);//(low+high)>>>1;//防止溢出,移位也更高效 int原创 2021-05-20 13:27:26 · 459 阅读 · 0 评论 -
递归思想-汉诺塔问题
递归小结:找重复:找到一种划分方法找到递推公式或者等价转化都是父亲问题转化为求解子问题找变化的量:变化的量通常要作为参数找出出口将1~N从A移动到B,C作为辅助 等价于: 1、1~N-1移动到C,B为辅助 2、把N从A移动到B 3、把1~N从C移动到B,A为辅助 代码实现:public class _04_汉诺塔 { /** * 将N个盘子...原创 2021-04-17 19:07:29 · 81 阅读 · 0 评论 -
每日算法--6--树
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删原创 2020-04-08 21:17:35 · 136 阅读 · 0 评论 -
每日算法--5--散列表
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删为什么需要散列表?在我们的程序直接中,往往也需要再内存之中存放一个“词典”,为了方便我们进行高效的查询和统计例如:开发一个学生管理系统,需要通过输入学号快速查出对应学生的姓名的功能,这里不必每次都去查询数据库,而可以再内存之中建立一个缓存表,这样做可以提高查询效率因为这些需求,一个重要的数据结构诞生...原创 2020-04-03 22:38:06 · 162 阅读 · 0 评论 -
每日算法--4--栈和队列
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删如果把物质层面的人体比作数据存储的物理结构,那么精神层面的人格则是数据存储的逻辑结构逻辑结构是抽象的概念,它依赖于物理结构而存在逻辑结构 线性结构 举例: 顺序表/栈/队列 非线性结构 举例: 树/图 物理结构 ...原创 2020-04-02 15:40:02 · 196 阅读 · 0 评论 -
每日算法--3--链表
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删要说数组是纪律严明的“正规军”,那么称链表是灵活多变的“地下党”最合适不过了什么是链表?链表(linked list)是一种在物理上非连续,非顺序的数据结构,由若干节点(node)所组成单向链表的每一个节点又包括两部分,一部分是存放数据的变量data,一部分是指向下一个节点的指针next...原创 2020-04-01 09:08:06 · 156 阅读 · 0 评论 -
每日算法--2--数组
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删先说一下什么是数组:数组英文array,是有限个相同类型的变量所组成的有序集合,数组中的每一个变量称为元素。数组是最为简单,最为常用的数据结构数组的优势和劣势:优势:数组拥有非常高效的随机访问能力,只要给出下表,就可以用常量时间找到对应元素,比如二分查找,总的来说,数组适合的是读操作多,写操作少...原创 2020-03-31 14:27:01 · 150 阅读 · 0 评论 -
每日算法--1--复杂度
说在前面:本文是通过阅读作者魏梦舒的《漫画算法》所总结的笔记,仅供学习,如侵即删1.什么是算法(alorithm)数学领域里:算法是用于解决某一类问题的公式和思想计算机领域里:它的本质是一系列程序指令,用于解决特定的运算和逻辑问题2.算法有高效的,也有拙劣的衡量算法好坏的重要标准有两个:时间复杂度和空间复杂度算法的应用领域:(1)数学运算还不简单?,其实不然比如...原创 2020-03-30 19:44:49 · 420 阅读 · 2 评论