数据结构笔记
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