编程的5种基础算法


编程的5种基础算法

文章插图
1、递归算法:在程序中不断反复调用自身来达到求解问题的方法 。递归算法代码简洁、可读型号 , 但是并没有减少代码规模好节省内存空间 。
【编程的5种基础算法】2、快速排序算法:快速排序是由东尼·霍尔所发展的一种排序算法 。在平均状况下 , 排序n个项目要Ο(nlogn)次比较 。在最坏状况下则需要Ο(n2)次比较 , 但这种状况并不常见 。事实上 , 快速排序通常明显比其他Ο(nlogn)算法更快 , 因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来 。
3、二分查找算法:二分查找算法是一种在有序数组中查找某一特定元素的搜索算法 。搜素过程从数组的中间元素开始 , 如果中间元素正好是要查找的元素 , 则搜素过程结束;如果某一特定元素大于或者小于中间元素 , 则在数组大于或小于中间元素的那一半中查找 , 而且跟开始一样从中间元素开始比较 。
4、递推算法:是一种理性思维的代表 , 根据已有的数据和关系 , 逐步推导而得到结果 。根据已知结果和关系 , 求解中间结果 , 判断是否达到要求 , 如果没有达到 , 则继续根据已知结果和关系求解中间结果;如果达到要求 , 则表示找到了一个正确的结果 。
5、分治算法:将一个计算复杂的问题分为规模较小、计算简单的小问题求解 , 然后综合各个小问题 , 得到最终问题答案 。确定一个规模为n的难解决问题难以直接解决 。将该问题分解为m个规模较小的子问题a , a们之间相互独立 , 与原问题形式相同 。递归地解决这些小问题 , 即一个一个解决 。然后 , 将各子问题的解合并到原问题的解 。