- 博客(5)
- 收藏
- 关注
原创 常见排序算法,一篇就够!
依次下来获得升序数组。对于堆排序,需要读者对于堆的结构有较为清晰的理解,我们直接上代码:虽然堆排序的理解对于读者有较高的门槛,因为它需要读者了解二叉树,但我们接下来讲的交换排序非常友好。交换排序其中的快速排序,是几乎所有排序里面效率最高,应用最广的排序。在讲快速排序之前,我们先来看看交换排序里另外一个经典排序,就是我们的冒泡排序。
2024-03-25 21:23:39 807 2
原创 深入浅出谈谈KMP算法
我们可以知道,由于时间复杂度考虑的是最坏的情况,所以如果我们运气最坏的话,将会紧贴着A字符串的末尾找到B字符串。例如,有字符串abcde,它的前缀有a,ab,abc ,abcd,它的后缀有e,de,cde,bcde。随后三个字符串,最大相等前后缀分别为 a,ab,abc,大小分别为 1,2,3。我们来看上图的例题:字符串A是 abcdabcdabcf ,而字符串B是 abcdabcf,字符串B到f之前,都可以与字符串A相匹配,我们可以看见,这时,就有了KMP算法。
2024-03-02 20:35:38 368
原创 深入浅出讲函数递归
函数递归,实际上就是函数自己调用自己的一个过程。就像剥洋葱一样,函数递归实际上就是把一个大型的复杂问题层层转化为一个与原问题相似,但规模较小的问题求解,直到原问题不能再被拆分的一个过程。
2023-12-06 13:12:32 65 2
原创 浅谈函数为什么被称为函数
当我们确定一个x 时,我们要先通过一系列的计算,才能最终得到x 的值,而我们先×6,再加2的操作,让我们最终确定了y的值。回到主题,那么我们计算机中的函数和数学上的函数有什么相同之处呢?首先我们应该知道,计算机中的函数也叫做”子程序”,而子程序可以较为独立的完成一个目的,比如完成两个数的加和,完成一个数的开平方,或者仅仅是在屏幕上打印一串字符。让我们往更深的层次去挖,还记得数学函数定义的小伙伴们应该知道,数学函数中,一个x只有一个对应的 y ,而一个 Y 可以对应多个 x ,这和计算机函数有什么相同呢?
2023-11-29 21:36:10 54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人