
算法
越昊
俺的博客内容都是经过实践验证的,为了长期保存备查,将以往的和现在日常的总结,全部存于此处。如果你喜欢,可以和我一起讨论 qq303562294
展开
-
算法_正整数数组的最优跳动方式_python
题目:获取一个正整数数组的最优跳动方式,要求如下:1)从数组中间的任意位置开始向右跳,每次跳动的步伐数不能超过该位置对应元素的值2)在跳动次数最少的情况下计算每次跳动的步伐#定义一个树节点,普通的树class ptree(): def __init__(self,index,lst = []): self.index = index #树的节点值 ,此处为列表的元素...原创 2020-03-29 21:16:59 · 335 阅读 · 0 评论 -
算法_堆排序_python
#堆排序def adjust(lst,beg,end,isBeg = True): i = 0 if end ==1: i = 0 else: i = int((end - 2)/2) + (end - 2)%2 rang = None if isBeg: rang =range(i +...原创 2020-03-29 21:10:13 · 101 阅读 · 0 评论 -
算法_二叉树_python
二叉树的相关操作创建二叉树先序、中序、后续遍历删除节点、添加节点计算二叉树的叶子个数#二叉树 # 1)若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;# 2)若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;# 3)任意节点的左、右子树也分别为二叉查找树。#定义个二叉树节点类,python中无structclass btnode...原创 2020-03-29 21:07:40 · 220 阅读 · 0 评论 -
算法_插值查找_python
#插值查找def binary_search(lis, key): low = 0 high = len(lis) - 1 time = 0 while low <= high: time += 1 # 计算mid值是插值算法的核心代码 mid = low + int((high - low) * (key - lis[low])/(lis[high...原创 2020-03-29 20:49:55 · 337 阅读 · 0 评论 -
算法_二分查找_python
#二分查找def orderby(lst,value): lg = len(lst) beg = 0 end = lg-1 while beg<=end: mid = int((beg+end)/2) print("mid = ",mid) if lst[mid] < ...原创 2020-03-29 20:24:20 · 91 阅读 · 0 评论 -
算法_归并排序_python
#归并排序def merge(lst1,lst2): lst = [] i,j = 0,0 while i < len(lst1) and j < len(lst2): if lst1[i]<lst2[j]: lst.append(lst1[i]) i +=1 elif ls...原创 2020-03-29 18:37:38 · 148 阅读 · 0 评论 -
算法_希尔排序_python
#希尔排序 def shell_sort(array): gap = len(array) while gap > 1: gap = gap // 2 for i in range(gap, len(array)): for j in range(i % gap, i, gap): ...原创 2020-03-29 18:21:39 · 124 阅读 · 0 评论 -
算法_插入排序_python
#插入排序def insert(lst): for i in range(1,len(lst)): for j in range(0,i): if lst[j] > lst[i]: lst.insert(j,lst.pop(i)) break print(lst...原创 2020-03-29 18:18:48 · 105 阅读 · 0 评论 -
算法_快排_python
#快排def quick(begin,end,lst): if begin > end: return print('---------------------------') beg = begin ed = end while beg < ed: while beg<ed and lst[beg]<...原创 2020-03-29 18:12:33 · 112 阅读 · 0 评论 -
算法_冒泡排序_python
#冒泡排序def bubble_sort(lst): length = len(lst) for i in range(length -1): print("-----------------------------------") for j in range(length -i -1): if lst[j] > ...原创 2020-03-29 18:08:01 · 183 阅读 · 0 评论 -
算法_选择排序_python
#选择排序,从小到大def select_sort(ll): length = len(ll) for i in range(0,length -1): min_pos = i for k in range(i+1,length): if ll[min_pos] > ll[k]: m...原创 2020-03-29 18:03:47 · 80 阅读 · 0 评论