- 博客(15)
- 收藏
- 关注
转载 Python数据结构——二维数组
# 创建二维数组# 必须要用for i in range(2),不然就会变成浅复制num_list = [ [0] * 5 for i in range(2)]num_list# 数组赋值num_list[0][0] = 1num_list
2019-05-16 17:47:04 767
转载 Python数据结构——链表
# 链接表基础结构# item用于存储数据# next指向下一个数据class Node(): # 用tuple定义允许绑定的属性名称 __slots__=['_item','_next'] def __init__(self,item): self._item=item self._next=None def getItem(...
2019-05-16 17:45:24 155
转载 Python数据结构——队列
# 队列(queue)也是表,使用队列时插入和删除在不同的端进行。# 队列的基本操作是Enqueue(入队),在表的末端(rear)插入一个元素,还有出列(Dequeue),删除表开头的元素。class Queue(object): # 使用list来实现 def __init__(self): self.queue = [] def...
2019-05-16 17:43:06 222
转载 Python数据结构——栈
# 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top)。栈的基本操作有PUSH(入栈)和POP(出栈)。# 栈又被称为LIFO(后入先出)表。# 栈可以通过list来实现class Stack(object): # 初始化 def __init__(self): self.stack = [] # 是否...
2019-05-16 17:41:28 177
转载 11.最长公共子序列
import numpy def find_lcseque(s1, s2): # 生成字符串长度加1的0矩阵,m用来保存对应位置匹配的结果 m = [ [ 0 for x in range(len(s2)+1) ] for y in range(len(s1)+1) ] # d用来记录转移方向 d = [ [ None for x in ...
2019-05-16 17:38:44 245
转载 10.最长公共子串
def find_lcsubstr(s1, s2): # 生成0矩阵,为方便后续计算,比字符串长度多了一列 m = [[0 for i in range(len(s2)+1)] for j in range(len(s1)+1)] # 最长匹配的长度 mmax = 0 # 最长匹配对应在s1中的最后一位 p = 0 for i i...
2019-05-15 18:04:12 210
转载 9.背包问题
def bag(n, c, w, v):# """# 测试数据:# n = 6 物品的数量,# c = 10 书包能承受的重量,# w = [2, 2, 3, 1, 5, 2] 每个物品的重量,# v = [2, 3, 1, 5, 4, 3] 每个物品的价值# """ # 置零,表示初始状态,多建了一行的空行 value = ...
2019-05-15 18:02:36 204
转载 8.贪婪算法
# 最少的电台数,覆盖最多的州# 需要覆盖的州的集合states_needed = set(["mt", "wa", "or", "id", "nv", "ut", "ca", "az"])# 各电台覆盖的州的集合stations = {}stations["kone"] = set(["id", "nv", "ut"])stations["ktwo"] = set(["wa", "...
2019-05-15 18:00:55 133
转载 7.狄克斯特拉算法
# the graphgraph = {}graph["start"] = {}graph["start"]["a"] = 6graph["start"]["b"] = 2graph["a"] = {}graph["a"]["fin"] = 1graph["b"] = {}graph["b"]["a"] = 3graph["b"]["fin"] = 5graph["fin...
2019-05-15 17:59:51 233
转载 6.广度优先搜索
from collections import deque# 名字最后一个为m字母的为芒果销售商def person_is_seller(name): return name[-1] == 'm'graph = {}graph["you"] = ["alice", "bob", "claire"]graph["bob"] = ["anuj", "peggy"]graph...
2019-05-15 17:58:29 125
转载 5.快速排序
def quicksort(array): if len(array) < 2: # 基线条件:为空或只包含一个元素的数组是“有序”的 return array else: # 递归条件 pivot = array[0] # 由所有小于等于基准值的元素组成的子数组 ...
2019-05-15 17:56:43 88
转载 4.栈
def fact(x): if x == 1: return 1 else: return x * fact(x-1)print(fact(5))
2019-05-15 17:55:16 125
转载 3.递归
def countdown(i): # base case if i <= 0: return 0 # recursive case else: print(i) return countdown(i-1)countdown(5)
2019-05-15 17:52:50 158
转载 2.选择排序
def findSmallest(arr): # 存储最小的值 smallest = arr[0] # 存储最小值的索引 smallest_index = 0 for i in range(1, len(arr)): if arr[i] < smallest: smallest_index = i ...
2019-05-15 17:47:17 119
转载 1.二分查找
def binary_search(list, item): # low和high用于跟踪要在期中查找的列表部分 low = 0 high = len(list) - 1 # 只要范围没有缩小到只包含一个元素 while low <= high: # 就检查中间的元素 mid = (low + high) // 2...
2019-05-15 17:23:12 110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人