自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 算法学习:递归分治

递归定义:程序调用自身的编程技巧称为递归( recursion)条件:1、递归需要有边界条件(一般写在最前面)2、递归前进段。当边界条件不满足时,递归前进3、递归返回段,当边界条件满足时,递归返回。递归代码的一般代码流程:伪代码示例:递归的缺点:递归算法解题相对常用的算法如普通循环等,运行效率较低。因此,应该尽量避免使用递归,除非没有更好的算法或者某...

2019-10-13 23:28:40 432

原创 算法学习:树二叉树二叉搜索树

1、树的含义:树状图是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树。1)每个元素称为结点(node);(2)有一个特定...

2019-10-11 23:45:02 196

原创 算法学习:广度优先搜索&深度优先搜索

广度优先搜索(BFS ):宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。其别名又叫BFS,属于一种盲目搜寻法,目的是系统地展开并检查图中的所有节点,以找寻结果。换句话说,它并不考虑结果的可能位置,彻底地搜索整张图,直到找到结果为止。特点:从算法的...

2019-10-10 23:06:08 496

原创 算法学习:字典树

字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。性质根节点不包含字符,除根节点外每一个节点都只包含一个字符;从根节点到某一节点,路径上经过的字符连接起来,为该...

2019-09-28 18:30:55 176

原创 算法学习:位运算

位运算程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。位运算符号的解析异或的常用操作重要的位运算符优点:1、直接对整数在内存中的二进制位进行操作2、处理速度快案例:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’的个数编写一个函数,输入是一个无符号整数,返回其二进...

2019-09-28 16:58:14 187

原创 算法学习:排序

排序所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的算法可以节省大量的资源。在各个领域中考虑到数据的各种限制和规范,要得到一个符合实际的优秀算法,得经过大量的推理和分析。常见的排序算法及复杂度的比较排序算法的评价标准...

2019-09-28 16:40:47 195

原创 算法学习:查找

顺序查找最基本的查找技术,它的查找过程是:从一个表中的第一个或者最后一个记录开始,逐个进行记录的关键字和给定的值是否相等,若相等,则查找成功。时间复杂度(o(n)),缺点:当数组数据量很大的时候,查找的效率很低下public static int findIndex(int[] arr,int target) { if (arr==null || arr.length=...

2019-09-28 16:33:50 138

原创 算法学习:哈希表

散列表:(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。散列函数: (HashFunction):若关键字为k,则其值存放在f(k)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系...

2019-09-28 16:24:21 193

原创 算法学习:栈与队列

1、数据结构:栈栈是仅在仅在表尾进行插入和删除的线性表,也成为先进后出的线性表,把允许插入和删除的一端成为栈顶,另一端为栈底。栈的应用:1、递归:递归过程退回的顺序是它执行顺序的逆序,在退回过程中,可能需要执行某些动作,包括恢复在前行过程中保存的数据,这样的结构很适合用栈来实现;2、四则表达式运算,中缀表达式转换为后缀,函数嵌套使用,已访问页面的历史记录。实现:java中的St...

2019-09-28 11:07:29 190

原创 算法学习:链表

1、数据结构:链表是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度。单向链表链表中最简单的一种是单向链表,它包含两个域,一个信息域和一个指针域。这个链接指向列表中的下一个节点,而最后一个节点则指向一个空值。一个单向链表的节点被分成两个部...

2019-09-18 13:22:06 230

原创 算法学习:数组

一、数组概念:所谓数组,是有序的元素序列,在内存中是顺序存储结构,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。[1]这些无序排列的同类数据元素的集合称为数组。相关操...

2019-09-12 23:49:15 207

原创 算法学习:动态规划之实战篇

动态规划的基础篇:https://blog.csdn.net/weixin_44625138/article/details/100188659实战分析一、leetcode题目: 爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。在此处给出两种解法:1、解法一:将子问题...

2019-09-03 22:59:10 282

原创 算法学习:动态规划基础篇

动态规划是什么?动态规划(英語:Dynamic programming,简称DP)是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题[1]和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。动态规划背后的基本思想非常简单。大致上,若要解一个给定问题,我们需要解其不同部分(即子...

2019-09-02 19:47:28 253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除