基础算法

1. 链表

2. 二叉树

先序遍历:根、左、右

中序遍历:左、根、右

后序遍历:左、右、根

层序遍历:从上到下、从左到右按层次进行访问

3. 排序:冒泡排序

def bubbleSort(arr):
    n = len(arr)

    # 遍历所有数组元素
    for i in range(n):

        # Last i elements are already in place
        for j in range(0, n - i - 1):

            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]


if __name__ == '__main__':
    a=[10,15,58,104,88,99,0,2,7,77,84]
    bubbleSort(a)
    print a

4.斐波那契数列

第一种:输出的是列表,入参:你总共需要输出几项?(从1项开始) 出参:列表

def fib(N):
    res=[]
    if N>1:
        a,b=0,1
        res.append(0)
        for i in range(N-1):
            sum=a+b
            a=b
            b=sum
            res.append(b)
        return res
    else:
        res=range(N)
        return res



if __name__ == '__main__':
    a = fib(2)
    print a

第二种:输出是第N项:仅一项,从0项开始。

def fib(N):
    if N>1:
        a,b=0,1
        for i in range(N-1):
            sum=a+b
            a=b
            b=sum
        return b
    else:
        return N


if __name__ == '__main__':
    c = fib(0)
    print c