- 博客(3)
- 收藏
- 关注
原创 深度优先搜索(DFS)
DFS 全称是Depth First Search ,中文名是深度优先搜索,是一种用于遍历或搜索树或图的算法。所谓深度优先,就是说每次都尝试向更深的节点走。深搜是主要基于递归的(也可以引入栈这一数据结构),原理是一条路走到黑,直到将所有答案搜索完之后,再来判断哪一个是正确的解。从定义中可以看出既然是将所有的都搜索,因为不是所有的点都有用,而且甚至会有好多的点会进行重复的搜索,所以会导致做了很多的无用功即时间复杂度一般都是指数型的,很容易TLE即超时。
2024-03-25 10:18:07
705
原创 广度优先搜索算法(BFS)
BFS像是一群老鼠走迷宫,假设这些老鼠无限多,这群老鼠进入迷宫过后,在每一个路口都派出一只老鼠探索没有走过的路。如果走某条路的老鼠碰到墙壁无法前行就停下,如果这条路被别的老鼠探索过了也停下,由于派出的老鼠无限多,即所有的路都能走到而且不会重复。这一过程就类似于BFS的运算过程。首先解释下为什么说bfs是拿空间来换时间呢?是因为在搜索过程中,BFS需要借助队列来存储待访问的节点,这样可以实现逐层遍历,并保证按照顺序访问节点。
2024-03-24 22:27:18
397
4
原创 直接插入排序(Straight insertion Sort)
希尔排序的时间复杂度取决于增量序列的间隔大小以及数组的初始排序情况,究竟取什么样的增量最好,至今仍是一个难题,但大量研究数据表明当递增数列d[k]=2的t-k+1的次方-1时(0<=k<=t<=[log(n+1)])时可以取得加不错的效率O(n^3/2)。我们都理解,优秀的排序算法首要的就是速度,在过去人们想了许多办法都无法将算法的速度,算法的时间复杂度都是O(n^2),所以当时的计算机学术界充斥着“排序算法无法突破O(n^2)”的声音。所以,相等元素的相对的前后顺序没有改变,所以插入排序是稳定的。
2024-01-29 17:53:29
934
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人