摘要: 定义及性质 好难啊 阅读全文
posted @ 2018-12-24 21:27 小学弟- 阅读(91) 评论(0) 推荐(0) 编辑
摘要: def two_sum(li, target): for i in range(len(li)): for j in range(i+1, len(li)): if li[i] + li[j] == target: return i, j def bin_search(li, val, low, high): ... 阅读全文
posted @ 2018-12-24 20:59 小学弟- 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 定义及性质 AVL树:AVL树是一颗自平衡的二叉搜索树. AVL树具有以下性质: 根的左右子树的高度只差的绝对值不能超过1 根的左右子树都是 平衡二叉树(AVL树) 百度百科: 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法) 阅读全文
posted @ 2018-12-24 17:12 小学弟- 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树 定义 class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None self.rchild = None class BST: def __init__(self, li=None): se 阅读全文
posted @ 2018-12-24 16:51 小学弟- 阅读(122) 评论(0) 推荐(0) 编辑
摘要: # 1.简单版# 二叉树的搜索也可以分DFS和BFS 分别可以用栈和队列实现,也可以递归实现from collections import deque class BiTreeNode: def __init__(self, data): self.data = data self.lchild = None self.rchild = ... 阅读全文
posted @ 2018-12-24 16:28 小学弟- 阅读(157) 评论(0) 推荐(0) 编辑
摘要: # 基数排序有着局限性,只能是整数,# 排序的时候要先排后面一个条件的(多条件排序)#如本例中,先从个位开始排起# 多关键字排序# 从低关键字开始排序 # @File: radix_sort ############################################## # def get_digit(num, i): # 获取整数第i位数字 # # return n... 阅读全文
posted @ 2018-12-24 15:53 小学弟- 阅读(202) 评论(0) 推荐(0) 编辑
摘要: # @File: maze_queue_bfs from collections import deque maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 1, 1,... 阅读全文
posted @ 2018-12-24 15:26 小学弟- 阅读(678) 评论(0) 推荐(0) 编辑
摘要: # @File: maze_stack_dfs maze = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 1, 0, 0, 0, 1, 0, 1], [1, 0, 0, 0, 0, 1, 1, 0, 0, 1], [1, 0, 1, 1, 1, ... 阅读全文
posted @ 2018-12-24 15:25 小学弟- 阅读(1468) 评论(0) 推荐(0) 编辑
摘要: # @File: queue from collections import deque # 双端队列 # from queue import Queue # Queue的实现就是基于deque的 q = deque() q.append(1) q.append(2) q.append(3) print(q.popleft()) print(q) q.appendleft(10) p... 阅读全文
posted @ 2018-12-24 15:04 小学弟- 阅读(165) 评论(0) 推荐(0) 编辑
摘要: # @File: stack # 列表实现栈 class MyStack(object): def __init__(self): self.data = [] def push(self, item): self.data.append(item) def pop(self): return self.data... 阅读全文
posted @ 2018-12-24 14:52 小学弟- 阅读(229) 评论(0) 推荐(0) 编辑
摘要: # @File: linklist class Node(object): def __init__(self, data): self.data = data self.next = None # 链表的实现:带头节点的链表 不带头节点的链表 # 带头节点的链表 # 头插法 def create_link_list_head(li): ... 阅读全文
posted @ 2018-12-24 14:03 小学弟- 阅读(347) 评论(1) 推荐(0) 编辑
摘要: 计数排序有局限性,最小值和最大值决定着数组的长度,如果分配均匀的话可以用 # @File: count_sort import random def count_sort(li, max_num=100): count = [0 for i in range(max_num + 1)] for val in li: count[val] += 1 l... 阅读全文
posted @ 2018-12-24 09:48 小学弟- 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 与插入排序的思想一致,插入排序是一个,希尔排序是多个插入排序! # @File: shell_sort import random def insert_sort_gap(li, d): for i in range(d, len(li)): j = i - d temp = li[i] while j >= 0 and li[j] ... 阅读全文
posted @ 2018-12-24 09:34 小学弟- 阅读(134) 评论(0) 推荐(0) 编辑