算法设计与分析
Fno.
大三
展开
-
非递归算法求解斐波那契数列,C语言入门学习!
斐波那契数列可以使用非递归算法来求解,这样可以避免递归带来的性能问题,尤其是当 n 非常大时。在对比递归算法时,非递归算法的时间复杂度是显著更优的。递归算法在计算大的斐波那契数时会有大量的重复计算。这是使用非递归算法计算斐波那契数列的第 n 项,如果想获得前XX位斐波那契数列,在main函数里再写个for循环就好了,这里不再赘述。循环的次数是 n - 1(从 2 到 n),所以算法的时间复杂度是 O(n)。因此,对于计算斐波那契数列,非递归算法是一个更高效的选择,特别是在处理大数值时。原创 2024-03-26 11:45:56 · 512 阅读 · 0 评论 -
递归算法求解斐波那契数列,C语言小白入门!
斐波那契数列,也被称为黄金分割数列,是由意大利数学家列昂纳多·斐波那契提出的。这个数列从第三项开始,每一项都等于前两项之和,具体为:0、1、1、2、3、5、8、13、21、34……知道公式后,写递推代码就很简单啦。输入10,则输出结果为。原创 2024-03-26 10:53:23 · 277 阅读 · 0 评论 -
搜索策略之简单枚举
输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2n79。原创 2023-05-15 15:44:39 · 69 阅读 · 1 评论 -
MERGE算法合并两个已排序的表
设定两个已排好序的数组a[p···q],b[q+1···t],(注意这里p、q代表数组下标,而非数组元素),使用两个指针s、r分别指向a[p],b[q+1],在s原创 2023-03-03 22:23:13 · 248 阅读 · 0 评论 -
顺序搜索算法与二分搜索算法
所以,当对不明确数组中元素的信息时,对数组A 的所有元素进行扫描是不可避免的,特别是当A数组很大时,效率就会很慢。因此有一个更有效的方法——,不过该方法的前提是数组A是一个有序数组,如按升序排列等,所以要提前对数组进行排序,这个在我其他文章里有讲到,可以去看看。最基础且最简单的方法是顺序搜索,由于元素最大比较次数和数组的大小呈线性关系,也叫线性搜索。对于一个大小为n的排序数组,算法BINARYSEARCH执行比较的最大次数为。设A[1···n]为一个n个元素的数组,判定给定元素x是否在A 中。原创 2023-03-02 14:51:11 · 59 阅读 · 0 评论