随笔分类 - 算法
摘要:# 堆排序 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 ...
阅读全文
摘要: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....
阅读全文
摘要:import queue """ 二叉搜索树: 特点:左子树的值小于根节点的值;右子树的值大于根节点的值 1.创建 2.插入节点 3.广度优先遍历 4.根据值查找节点 5.删除节点 """ class TreeNode(object): """定义树的节点""" def __init__(self, val): self.value = val ...
阅读全文
摘要: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 =...
阅读全文
摘要: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]: ...
阅读全文
摘要: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]: # 左边大于右边的数 ...
阅读全文
摘要: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...
阅读全文
摘要:# 归并排序:把两个有序的列表合成一个列表并排序 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 ...
阅读全文
摘要: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...
阅读全文
摘要: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]: # 左边大于右...
阅读全文
摘要:def quick_sort(num_list): if len(num_list)=base] return quick_sort(left)+[base]+quick_sort(right)
阅读全文
浙公网安备 33010602011771号