随笔分类 -  算法

摘要:# 堆排序 def max_heap(heap,heapsize,i): # 构造最大堆(内部构建) left=2*i+1 right=2*i+2 larger=i if leftheap[larger]: larger=left if rightheap[larger]: larger=right if ... 阅读全文
posted @ 2019-08-18 20:31 reyinever 阅读(120) 评论(0) 推荐(0)
摘要:def perm(arry): if arry==[]: return [arry] resultList = [] for i in range(len(arry)): restArry=arry[:i]+arry[i+1:] for x in perm(restArry): resultList.... 阅读全文
posted @ 2019-08-17 18:32 reyinever 阅读(141) 评论(0) 推荐(0)
摘要:import queue """ 二叉搜索树: 特点:左子树的值小于根节点的值;右子树的值大于根节点的值 1.创建 2.插入节点 3.广度优先遍历 4.根据值查找节点 5.删除节点 """ class TreeNode(object): """定义树的节点""" def __init__(self, val): self.value = val ... 阅读全文
posted @ 2019-08-06 11:48 reyinever 阅读(430) 评论(0) 推荐(0)
摘要:from queue import Queue """二叉树: 1.深度遍历 2.广度遍历 """ class Node(object): def __init__(self, value, left=None, right=None): self.value = value self.left = left self.right =... 阅读全文
posted @ 2019-08-06 11:46 reyinever 阅读(662) 评论(0) 推荐(0)
摘要:def binary_search(arry,target): min=0 max=len(arry)-1 while min<=max: mid=int((min+max)/2) if target==arry[mid]: return mid elif target<arry[mid]: ... 阅读全文
posted @ 2019-08-06 11:37 reyinever 阅读(210) 评论(0) 推荐(0)
摘要:def insertion_sort(num_list): for i in range(1, len(num_list)): # 从第二个数开始 for j in range(i - 1, -1, -1): # 每个数和它左边的数进行比较 if num_list[j] > num_list[j + 1]: # 左边大于右边的数 ... 阅读全文
posted @ 2019-06-30 22:52 reyinever 阅读(107) 评论(0) 推荐(0)
摘要:def shell_sort(num_list): step = int(len(num_list)/2) while step>0: for i in range(step,len(num_list)): while i>=step and num_list[i]<num_list[i-step]: num... 阅读全文
posted @ 2019-06-30 22:49 reyinever 阅读(130) 评论(0) 推荐(0)
摘要:# 归并排序:把两个有序的列表合成一个列表并排序 def merge_sort(list_sorted_a,list_sorted_b): result =[] i=0 j=0 while ilist_sorted_b[j]: result.append(list_sorted_b[j]) j+=1 ... 阅读全文
posted @ 2019-06-30 22:46 reyinever 阅读(116) 评论(0) 推荐(0)
摘要:def selection_sort(num_list): for i in range(len(num_list) - 1): # 比较的趟数:n-1 min_value_index = i # 指定位置 for j in range(i + 1, len(num_list)): # 和指定位置后面的数进行比较 if nu... 阅读全文
posted @ 2019-06-30 22:45 reyinever 阅读(122) 评论(0) 推荐(0)
摘要:def buttle_sort(num_list): for i in range(len(num_list) - 1): # 比较的趟数:n-1 for j in range(len(num_list) - 1 - i): # 每趟循环比较的次数:n-1-i if num_list[j] > num_list[j + 1]: # 左边大于右... 阅读全文
posted @ 2019-06-30 22:42 reyinever 阅读(122) 评论(0) 推荐(0)
摘要:def quick_sort(num_list): if len(num_list)=base] return quick_sort(left)+[base]+quick_sort(right) 阅读全文
posted @ 2019-06-30 22:39 reyinever 阅读(161) 评论(0) 推荐(0)