上周我们在【算法学与练】专栏中,讲到了排序中的循环排序、计数排序和归并排序,还有一种排序也需要大家重点掌握,这种排序叫做快速排序。
想获取算法题解,回复【算法】即可~除此之外,蓝桥云课专属算法刷题群随时为你开放~
快速排序
它是对冒泡排序算法的一种改进,它的基本思想是:通过一趟排序将待排记录分割成独立的两部分。
其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序。
排序的练习题来啦!
想获取题解,在菜单栏回复【算法】即可哦!
上周算法刷题的知识点除了排序外,还有搜索。
搜索
搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。
现阶段一般有枚举算法、深度优先搜索、广度优先搜索、A*算法、回溯算法、蒙特卡洛树搜索、散列函数等算法。
现在主要讲的是深度优先搜索,它所遵循的搜索策略是尽可能“深”地搜索树。
它的基本思想是:为了求得问题的解,先选择某一种可能情况向前(子结点)探索,在探索过程中,一旦发现原来的选择不符合要求,就回溯至父亲结点重新选择另一结点,继续向前探索,如此反复进行,直至求得最优解。
剪枝算法是一个搜索算法旨在减少在其搜索树中,被极大极小算法评估的节点数。这是一个常用人机游戏对抗的搜索算法,它的基本思想是根据上一层已经得到的当前最优结果,决定搜索是否要继续下去。
但是这个算法严重依赖于着法的寻找顺序,如果你总是先去搜索最坏的着法,那么 Beta 截断就不会发生,因此该算法就如同最小-最大一样,效率非常低。
练习题来啦!
1.N 皇后问题
2.四平方和
3.完美正方形
蓝桥云课专属算法刷题群随时为你开放,提前祝贺你成为更优秀的自己~
▼欢迎加入算法刷题群▼
原文始发于微信公众号(蓝桥云课精选):如何优雅地使用深度优先搜索?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论