数据结构&算法案例
文章平均质量分 76
该专栏主要用来记录数据结构相关知识、各语言常见及不常见的算法案例和解题思路等,大多以函数或类的形式实现,可以直接传参或复制使用。
灰小猿
CSDN博客专家、Java 领域优质创作者、华为云享专家、阿里云专家博主。专注分享全栈领域优质文章,以及毕业项目实战开发、讲解、毕设答疑辅导,同行合作。全网粉丝 10W+,关注小猿不迷路,小猿带你上高速!
展开
-
天天肝大厂面试题?这几个面试必考算法你掌握了吗?
Hello。你好呀,我是灰小猿,一个超会写bug的程序猿!时隔好几天,终于更新了,最近看了很多大厂面试题和相关要求,其中关于常用算法的考察几乎是必须的,但是对于常见算法的学习,只单单的记住某几个程序肯定是不可以的,这就需要深入的对算法的定义、思想、原理及解题上下功夫。今天就来和大家逐个深入剖析一下常见算法的基本定义、思想、原理及解题方法,看完别忘了评论见解,一键三连!一、递归法算法定义递归法是指一个过程或函数在其定义或说明中直接或间接调用自身的一种方法。在使用递归策略时,必须有一个.原创 2021-06-02 17:32:41 · 1373 阅读 · 12 评论 -
用大白话和面试官扯“八大常用排序算法的基本思想”
目录一、直接插入排序二、希尔排序三、直接选择排序四、堆排序五、冒泡排序六、快速排序七、归并排序八、基数排序Hello,你好呀,我是灰小猿,一个超会写bug的程序猿。最近在进行学习的时候发现总能用到数据结构中的各种排序算法,有的记忆不到位的还需要重新去了解学习。所以今天就抽空在这里和大家总结一下常见的内部排序算法设计的基本思想,可能比较言简意赅,所以欢迎有其他见解的小伙伴在评论区提出分享。一、直接插入排序直接插入排序的基本思想:每步将一个待排序的记录按其排序原创 2021-04-06 09:05:45 · 5914 阅读 · 72 评论 -
多种方法求解“最大公约数”和“最小公倍数”
Hello,大家好,我是灰小猿,一个超会写bug的程序猿。今天在这里记录一下在程序中求解两个数的最大公约数和最小公倍数的几种方法。一、最大公约数1、枚举法采用枚举法求解两个数的最大公约数是我们最常使用到的方法,两个整数的最大公约数为a,则a应该是大于等于1,小于等于这两个数的最小数的。因此我们可以在该范围内对可能的数进行枚举即可。使用程序如下: /** * 枚举法 * 求两个数的最大公约数 * */ static public int gcd1(int a,in原创 2021-02-03 14:51:27 · 6191 阅读 · 2 评论 -
【递归+回溯】实现数组元素的组合、排列和全排列
目录一、数组元素的组合二、数组元素的全排列三、数组元素的排列组合Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!最近在做蓝桥杯相关的试题的时候发现对数组元素进行排列组合的使用十分的广泛,而常见的排列组合类型的题目也是数据结构和算法的典型例题,所以今天在这里和大家分享一下我们在平常的开发过程中,常会用到的几种排列组合的类型和解法:一、数组元素的组合对于从n个元素的数组arr中取出m个数(不考虑顺序且不重复)放到新数组newarr中的情况,常见的思路是使用递归的思想:从原创 2021-01-30 15:30:22 · 8003 阅读 · 3 评论 -
手撕“汉诺塔算法”之详细图解
hello,你好呀,我是灰小猿,一个超会写bug的程序猿,今天和大家分享一个递归经典算法案例---“汉诺塔”。汉诺塔问题回顾汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金钢石柱子,其中一根柱子自底向上叠着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。这是一个著名的问题,几乎所有的教材上都有对这个问题的介绍。由于条件是:借助一个中转柱,使起始柱原创 2020-12-20 13:25:39 · 10540 阅读 · 4 评论 -
算法案例分析—字符串模式匹配算法
目录一、朴素的模式匹配算法二、KMP算法(改进的模式匹配算法)hello!大家好哇,我是灰小猿,一个超会写bug的沙雕程序猿!今天来和大家分享一个关于字符串比较的模式匹配算法,在数据结构中对字符串的相关操作中,对子串的定位操作通常称为串的模式匹配,同样他也是各种串处理中最重要的操作之一,同时子串也称为模式串,关于主串和模式串的匹配算法常用的主要有两种:朴素的模式匹配算法和KMP算法(改进的模式匹配算法),接下来将分别对这两种算法进行分析。一、朴素的模式匹配算法朴素的模式匹配算法也被称原创 2020-09-09 19:49:13 · 6919 阅读 · 35 评论 -
算法—判断字符串是否为IP地址
目录常规判断法正则表达式判断法Hello,大家好,我是灰小猿!今天在这里和小伙伴记录一下判断字符串是否是IP地址的算法,实现该算法我们首先应该知道,IP地址应该依据哪些条件:判断原则: 判断该字符长度是否是7-15位之间(0.0.0.0-255.255.255.255.255) 是否能以小数点分成四段 每段是否都是数字 每段数字是否都在0-255之间 只有以上四个条件都满足了,才是IP的正确格式,实现该算法有两种比较简单的方法,一种是常规判原创 2020-08-04 10:21:18 · 9557 阅读 · 66 评论 -
适用于各语言的二分查找算法,你get到了嘛?
目录二分查找算法定义二分查找算法的过程剖析二分查找算法的时间复杂度二分查找的函数方法Hello!大家好,我是努力赚钱买生发水的灰小猿,最近在做开发的时候偶然用到了之前数据结构上的二分查找算法,所以在这里和大家简单的分享一下适用于各种语言的二分查找算法编写。那么什么叫二分查找算法呢?二分查找算法定义所谓二分查找算法,又叫折半查找,一般来说适用于数组元素,具体来说应该是已经按照顺序存储结构排列好的数组元素。它是一种效率较高的查找算法,通过对顺序表进行折半查找,从而获取到元素.原创 2020-06-09 11:34:52 · 4261 阅读 · 24 评论 -
图片:“给你五十行代码把我变成字符画!” 程序:“太多了,一半都用不完!”
利用pillow模块处理,用20多行Python代码将普通图片转为字符画操作这里是目录哟像素RGB值灰度值计算灰度值映射字符函数图片导入及尺寸设置遍历图片获取字符字符画输出和导入文件哈喽,努力赚钱买生发水的大灰狼又来了,今天和大家分享一个简单又好玩的Python项目–“图片转字符画”。废话不多说,先上一个效果图迷惑一下众生。没错的,图片转字符画就是将我们平常所看到的的图片根据像素RGB值和灰度值传化成一个个字符串的过程。嗯…听起来有些费脑子喔。没关系,且听大灰狼为小伙伴一一分解。.像素RG.原创 2020-05-21 23:22:43 · 6557 阅读 · 63 评论