
数据结构与算法
源滚滚编程
人生苦短,我用Python,坚持每天学习,坚持每天进步一点点,一对一带徒弟。
展开
-
使用Go语言实现基于泛型的Jaccard相似度算法
【代码】使用Go语言实现基于泛型的Jaccard相似度算法。原创 2024-08-05 08:43:15 · 404 阅读 · 0 评论 -
Go语言标准库中的双向链表的基本用法
什么是二分查找区间?原创 2024-08-05 08:04:58 · 320 阅读 · 0 评论 -
Go语言实现支持泛型的二分查找算法
【代码】Go语言实现支持泛型的二分查找算法。原创 2024-08-05 07:43:07 · 160 阅读 · 0 评论 -
基于递归算法,使用Python实现查看指定文件夹的磁盘空间使用情况
【代码】基于递归算法,使用Python实现查看指定文件夹的磁盘空间使用情况。原创 2024-07-23 20:01:41 · 165 阅读 · 0 评论 -
python基于递归实现简单的二分查找算法
【代码】python基于递归实现简单的二分查找算法。原创 2024-07-23 19:56:37 · 145 阅读 · 0 评论 -
python基于递归实现简单的二分查找算法
【代码】python基于递归实现简单的二分查找算法。原创 2024-07-23 19:47:59 · 103 阅读 · 0 评论 -
使用Excel绘制递归跟踪图
但是由于经常使用电脑,不太习惯用笔,所以想了个用Excel绘制递归跟踪图的法子。借助递归跟踪图,能够分析每一个步骤,得到递归函数的具体执行流程。虽然比起书里面的递归跟踪图少了箭头,但是还是可以理解的。递归跟踪图非常重要,是我们分析递归算法非常关键的技术。这个是求阶乘的,我们来绘制fac(5)的递归跟踪图。原创 2024-07-23 19:36:14 · 205 阅读 · 0 评论 -
阶乘和递归
比如三个字符a,b,c,有3x2x1=6中排列方式,分别是abc,acb,bac,bca,cba,cab。n=0时结果是1,n大于等于1时,n的阶乘等于n乘以n-1的阶乘。阶乘有一个非常重要的意义,它的结果正好是n个元素全排列的个数。而且阶乘函数有一个固有的递归意义。原创 2024-07-23 19:30:02 · 143 阅读 · 0 评论 -
火柴问题,请找出通过移动一根火柴棒(即移走一根火柴棒并把它放在不同的位置上)可以从这个数组成的所有数
请找出通过移动一根火柴棒(即移走一根火柴棒并把它放在不同的位置上)可以从这个数组成的所有数。例如,从 16 开始恰好移动一根火柴棒,就可以组成三个不同的数字:10、19 和 75。但是,只应考虑上图中 0 到 9 所组成的数字,而不能用火柴棒代替减号等。将添加1,减少1,移动1的每个数字的每种情况组成一个字典。现在你面前有一个由火柴棒组成的数字。火柴像这样组成0~9的数字, ,输入就是一个数字 s。原创 2024-07-16 22:53:41 · 787 阅读 · 0 评论 -
C语言数据结构与算法之栈练习2:判断栈是否为空或者是否已满
需求2:如果栈已满,则不要再继续入栈,并提示错误信息。如果栈为空,则不要出栈,并提示错误信息。错误信息要输出到标准错误流。需求1:实现一个简单的栈结构,并实现入栈和出栈的功能,编写相关的代码进行测试。如果栈不是空指针,并且栈顶位置和容器容量相同,则说明栈已经满了。如果栈不是空指针,或者栈顶位置在0,则说明这个栈是个空栈。需求3:编写代码,分别覆盖栈已满和栈为空的情况。正常情况下,栈顶位置应该小于栈容量。原创 2024-05-10 10:49:06 · 1040 阅读 · 0 评论 -
C语言数据结构练习题之基本实战栈的入栈和出栈功能
需求:实现一个简单的栈结构,并实现入栈和出栈的功能,编写相关的代码进行测试。原创 2024-05-10 07:50:47 · 289 阅读 · 0 评论 -
算法第一步
这个算法可以说就是史莱姆了,完全就是经验怪,只要你会点编程语言,就能够搞定它。我们先看看要殴打这只史莱姆需要干啥?给你一个数组,这个数组中存储了很多的数据,然后我指定一个数据,让你去从这个数组中查找出来,并返回这个数据在数组中的索引。这个就是顺序查找算法的需求。首先我们必须要要搞明白,指定的数据,是可能存在,也可能不存在的,这是两种必须要考虑的情况。实际上当你学会分析不同情况的时候,你就已经逐渐形成“分支结构”的算法逻辑思想了。其次,我们必须要搞明白,这个数组,可能无限的短,也可能无限的长。原创 2023-12-26 11:47:01 · 628 阅读 · 0 评论 -
大鹏Java算法体系课01 线性查找
之前咱们的算法已经通过泛型进行优化了,常见的类型都能够支持了。那么现在,假设我们自定义了一个Student类,有一个[]Student数组,想要从这个数组中找到名字叫张三的Student对象,我们的算法能支持吗?/*** @文件 Student.java* @作者 张大鹏* @版本 v0.1.0* @描述* @创建时间 2022-10-20 22:17:00* @更新时间 2022-10-20 22:17:00if(!} }}}原创 2022-10-23 09:24:46 · 590 阅读 · 0 评论 -
常用的排序算法(选择,冒泡,插入)
选择排序:这种排序算法的思路很简单,就是从左往右遍历,每次找最小的数放到前面。这样保证前面的数始终小于或等于后面的数,到最后整个数组都是有序的。冒泡排序:这种排序算法的思路也很简单,也是从左往右遍历,每次比较相邻两个数的大小,将大的往右边放。这样就保证到最后,右边的数始终比左边的数大,整个数组都是有序的。插入排序:这种排序算法的思路是从左往右遍历,每次保证左边的小数组是有序的。即就是每次从右边取一个数过来,然后和左边的小数组比较,插入到一个合适的位置。原创 2022-10-21 08:48:20 · 603 阅读 · 0 评论 -
打印一个数的32位表示
如果一个数是负数,对这个数取反+1,得到的结果还是它自己。如果这个数是正数,对这个数取反+1,得到的结果是它的负数。这里我们可以得出一个结论:某种类型的最小值是其最大值加负号,再减去1。比如这里的最大整数是。注意:最大整数取反+1,得到的不是最小整数,而是它本身的负数表示形式。比如:对负数取反结果如下。原创 2022-10-20 12:44:54 · 480 阅读 · 0 评论