新手区 算法积累

MmoMartin · 2018年10月25日 · 最后由 MmoMartin 回复于 2019年07月22日 · 48 次阅读

# 冒泡排序算法,每一次比较把大的值往上冒

代码块


a = [100,89,7,6,45,99,22,788,0,63,9]
#冒泡排序
for i in range(len(a)):
    for i in range(len(a) - 1):#一次循环数值大的顶上  且每次循环的len(a)长度小1
        test = 0
        if a[i] > a[i+1]:
            test = a[i+1]
            a[i+1] = a[i]
            a[i] = test


#递归斐波那契数列
def f(i,a,b):
    print(a)
    if i == 10:
        return
    c = a+b
    f(i+1,b,c)
f(1,0,1)



共收到 9 条回复 时间 点赞

1.面试要问排序,也是手写快排,复杂的要求写堆排思路。
2.用递归,堆栈溢出。
想刷算法,初级去剑指 OFFER,高级的 LEETCODE。

leecode 我在那里也玩 也刷题,来这里是从头开始

用了 Python 还在用 C 的实现...

冒泡好像不正确。。

唠嗑炸了 回复

没用过 C,只用过 Python 的有强迫症,去帮他改过来😁 😁 😁

那个递归感觉别扭,像是迭代换了个皮儿,输出工作和 return 没啥关系

from sys import exit
def f(i,a,b):
    print(a)
    if i == 10:
        exit()
    c = a+b
    f(i+1,b,c)
    print "won't run if use exit()"
f(1,0,1)
hellohell 回复

python 的每个函数对应一个 return 习惯了就好

8楼 已删除
Viking Den 回复

实践是检验真理的唯一标准

准备进攻 leecode 的算法题目,今天开始执行

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册