数据结构笔记

1、  =============《大话数据结构》==========

1、  经典的《设计模式》一书归纳出23种设计模式,这23种模式又可归为,创建型、结构型和行为型3大类

2、  时间耗时排序(时间复杂度)

F(1)<F(logn)<F(n)<F(nlogn)<F(n2)<F(n3)<F(2n)<F(n!)<F(nn)

3、  深度优先和广度优先在时间复杂度上是一样的

4、  多个关键字的排序都可以转换成单个关键字的排序

5、  稳定排序:选(择)冒(泡)插(入)归(并)

8章查找好像还没看

def part(data,low,hight):
    temp=data[low]
    while (low<hight):# 要一直找到temp的位置才可以停止循环
        while (low<hight and data[hight]>=temp):
            hight=hight-1
        data[low] = data[hight]  #去掉不必要的交换
        while (low<hight and data[low]<=temp):
            low=low+1
        data[hight] = data[low]
    data[low]=temp
    return low

def part2(data,low,hight):
    temp=data[low]
    while (low<hight):
        while (low<hight and data[hight]>=temp):
            hight=hight-1
        data[low],data[hight] = data[hight],data[low]
        while (low<hight and data[low]<=temp):
            low=low+1
        data[low],data[hight] = data[hight],data[low]
    return low

def quicksort(data,low,hight):
    if low<hight:
        mid=part(data,low,hight)
        quicksort(data,low,mid-1)
        quicksort(data,mid+1,hight)

dai=[2,3,4,3,33,22,56,8,99,76,56,88]
def entray(dai):
    hight=len(dai)
    quicksort(dai,0,hight-1)

entray(dai)
print(dai)

 可以把一个二叉树的任何子节点当成二叉树本身

二叉堆(完全树)可以用一个列表来实现。若节点在列表中的位置是p,那么起左节点位于2p,右节点位于2p+1

原文地址:https://www.cnblogs.com/testzcy/p/6821035.html