- 博客(15)
- 收藏
- 关注
转载 Python数据结构——二维数组
# 创建二维数组 # 必须要用for i in range(2),不然就会变成浅复制 num_list = [ [0] * 5 for i in range(2)] num_list # 数组赋值 num_list[0][0] = 1 num_list
2019-05-16 17:47:04
862
转载 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
212
转载 Python数据结构——队列
# 队列(queue)也是表,使用队列时插入和删除在不同的端进行。 # 队列的基本操作是Enqueue(入队),在表的末端(rear)插入一个元素,还有出列(Dequeue),删除表开头的元素。 class Queue(object): # 使用list来实现 def __init__(self): self.queue = [] def...
2019-05-16 17:43:06
266
转载 Python数据结构——栈
# 栈(Stack)是限制插入和删除操作只能在一个位置进行的表,该位置是表的末端,称为栈的顶(top)。栈的基本操作有PUSH(入栈)和POP(出栈)。 # 栈又被称为LIFO(后入先出)表。 # 栈可以通过list来实现 class Stack(object): # 初始化 def __init__(self): self.stack = [] # 是否...
2019-05-16 17:41:28
218
转载 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
303
转载 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
258
转载 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
284
转载 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
177
转载 7.狄克斯特拉算法
# the graph graph = {} graph["start"] = {} graph["start"]["a"] = 6 graph["start"]["b"] = 2 graph["a"] = {} graph["a"]["fin"] = 1 graph["b"] = {} graph["b"]["a"] = 3 graph["b"]["fin"] = 5 graph["fin...
2019-05-15 17:59:51
295
转载 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
163
转载 5.快速排序
def quicksort(array): if len(array) < 2: # 基线条件:为空或只包含一个元素的数组是“有序”的 return array else: # 递归条件 pivot = array[0] # 由所有小于等于基准值的元素组成的子数组 ...
2019-05-15 17:56:43
119
转载 4.栈
def fact(x): if x == 1: return 1 else: return x * fact(x-1) print(fact(5))
2019-05-15 17:55:16
159
转载 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
204
转载 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
156
转载 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
148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅