编程必须了解的算法有哪些?

发布网友 发布时间:2022-04-22 00:59

我来回答

1个回答

热心网友 时间:2024-02-19 22:03

1、递归算法:在程序中不断反复调用自身来达到求解问题的方法。递归算法代码简洁、可读型号,但是并没有减少代码规模好节省内存空间。

2、快速排序算法:快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。

3、二分查找算法:二分查找算法是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。

4、递推算法:是一种理性思维的代表,根据已有的数据和关系,逐步推导而得到结果。根据已知结果和关系,求解中间结果,判断是否达到要求,如果没有达到,则继续根据已知结果和关系求解中间结果;如果达到要求,则表示找到了一个正确的结果。

5、分治算法:将一个计算复杂的问题分为规模较小、计算简单的小问题求解,然后综合各个小问题,得到最终问题答案。确定一个规模为n的难解决问题难以直接解决。将该问题分解为m个规模较小的子问题a,a们之间相互,与原问题形式相同。递归地解决这些小问题,即一个一个解决。然后,将各子问题的解合并到原问题的解。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com