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