算法基础1
1.斐波那契数列(递归算法)
问题描述:
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子一月能生出一对小兔子来;假设所有的兔子都不死,那么一年(365天)以后可以繁殖多少对兔子?
输入:
3
输出:
2
def Fibonaqi(month): #迭代部分
if month ==1 or month ==2:
return 1
else:
return (Fibonaqi(month - 1) +Fibonaqi(month - 2) )
n =int(input()) #输入月份
print(Fibonaqi(n)) #调用函数
#代码缺陷就这题来说数据 n的值最好不要超过35(大于35递归的效率会很低;就是等电脑在那算半天)
#递归算法对于数据量很大的计算来说效率低到你想吐。。。。。
解题思路:
根据题意先画表格分析(这应该是比较清晰直观的分析方法)
不难发现从第三项开始其对数是前两项的和由此可得以下公式:
🤭嘿嘿!!!(这个大家不陌生吧)从公式中很自然的联想到了数据结构中的递归。
2.冒泡排序(最常见的排序算法)
🤭🤭🤭🤭🤭🤭🤭🤭后面还会专门出一章排序算法的内容
题目描述:
这个比较简单我就直接描述了没找题目大家见谅。。。。
给出一组数据例如: 21 3 25 78 19 50 28 45
叫你把他排成升序(或降序 这个看你心情😀😀😀😀😀)
输入:
21 3 25 78 19 50 28 45
输出:
3, 19, 21, 25, 28, 45, 50, 78
arr =list(map(int,input().split()))
print(sorted(arr)) # arr.sort()
# print(arr)
#升序用一下代码
'''
arr.sort(reverse = True)
print(arr)
'''
补充:map函数;spilt()看不懂的上度娘问。