![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
vczhfan
这个作者很懒,什么都没留下…
展开
-
chap11 stack
class Stack: initial_capacity=10 def __init__(self): self.A=[0]*self.initial_capacity self.top=0 self.capacity=self.initial_capacity def expand(self): self.原创 2014-07-16 10:38:58 · 270 阅读 · 0 评论 -
最大子数组
def find_max_sum(A,low,high): if high==low: return low,high,A[low] else: mid=(low+high)//2 left_low,left_high,left_sum=find_max_sum(A,low,mid) right_low,right_h原创 2014-07-13 20:05:42 · 272 阅读 · 0 评论 -
chap5
def hire_assistant(A,n): best=0 for i in range(0,n): x=A[i] if A[i]>best: best=i return bestdef online_max(A,k,n): infinity=1000000 best=-infinity原创 2014-07-13 20:52:06 · 256 阅读 · 0 评论 -
chap2
def insertion_sort(A): for i in range(1,len(A)): x=A[i]; j=i-1; while( j>=0 and A[j]>x): A[j+1]=A[j] j-=1 A[j+1]=xA=[5,4,3,2,1]insertion_sort(A);print(A原创 2014-07-13 19:51:47 · 265 阅读 · 0 评论 -
求逆序对的nlgn算法
def inversion(A,p,r): #inversion return inversion num and sort the arr if(r-p<=1): return 0 else: q=(p+r)//2 n1,n2=inversion(A,p,q),inversion(A,q,r) n3=0 L=A[p:q原创 2014-07-13 16:46:15 · 373 阅读 · 0 评论 -
算法导论,4-6 monge 阵列
证明A[i,j]+A[i+1,j+1]此时bian原创 2014-07-25 16:23:01 · 1108 阅读 · 0 评论 -
二分查找
def bsearch(a_list,item): first=0 last=len(a_list)-1 found=False while first<=last and not found: midpoint=(first+last)//2 if a_list[midpoint]==item: found=原创 2014-07-18 00:27:19 · 275 阅读 · 0 评论 -
python 哈希表实现
class HashTable: def __init__(self): self.size=11 self.slots=[None]*self.size self.data=[None]*self.size def hash_function(self,key,size): return key%size d原创 2014-07-18 00:56:27 · 966 阅读 · 0 评论 -
实现有序列表和无序列表
class Node: def __init__(self,init_data): self.data=init_data self.next=None def get_data(self): return self.data def get_next(self): return self.next d原创 2014-07-17 23:31:47 · 549 阅读 · 0 评论 -
树的各类算法
class Tree: def __init__(self,key,left=None,right=None,par=None): self.key,self.left,self.right,self.par=key,left,right,pardef inorder(t): if t!=None: inorder(t.left)原创 2014-07-16 21:48:56 · 289 阅读 · 0 评论 -
chap11 哈希表链接法
from functools import reducefrom operator import addfrom random import seed,randintclass Node: def __init__(self,key,prev=None,next=None): self.key,self.prev,self.next=key,prev,nextcla原创 2014-07-17 15:25:59 · 307 阅读 · 0 评论 -
chap11 哈希表实现-开放寻址法
from functools import reducefrom operator import addclass HashTable: size=97 def hash(k,i): return (reduce(add,map(ord,str(k)),0)+i)%HashTable.size def __init__(self): se原创 2014-07-17 15:51:17 · 908 阅读 · 0 评论 -
chap10 list 单链表实现
class Node: def __init__(self,key,next=None): self.key=key self.next=nextclass LinkList: def __init__(self): self.nil=Node('error',None) self.nil.next=self.nil原创 2014-07-16 15:17:36 · 283 阅读 · 0 评论 -
chap10-DLinkList
class Node: def __init__(self,key,prev=None,next=None): self.key=key self.prev=prev self.next=nextclass List: def __init__(self): self.nil=Node('error')原创 2014-07-16 13:18:07 · 346 阅读 · 0 评论 -
chap10 单链表倒置
def reverse(self): pre,cur=self.nil,self.nil.next while(cur!=self.nil): next=cur.next cur.next=pre pre,cur=cur,next self.nil.next=pre原创 2014-07-16 15:36:31 · 286 阅读 · 0 评论 -
heapsort
class heap: def __init__(self,A): self.A=A self.size=0 self.length=len(A)-1 def __setitem__(self,i,x): self.A[i]=x def __getitem__(self,i): return s原创 2014-07-16 08:55:39 · 271 阅读 · 0 评论