
数据结构与算法
csdn950212
想做一个文艺小青年,不用逻辑,凭感觉。偏偏走上了程序猿的道路,不靠感觉,用逻辑....
展开
-
python非递归实现二分查找
# -*- coding:utf-8 -*-def binary_search(num,arr): n=len(arr) left=0 right=n-1 if n==0: return '数组为空!' while left<=right: mid=(left+right)//2 if arr[mid...原创 2018-12-15 21:58:14 · 232 阅读 · 0 评论 -
python实现快速排序
# 快速排序时间复杂度平均为O(nlogn),最差为O(n*2),注意递归跳出条件def quick_sort(arr,start,end): if start >= end:#注意递归跳出条件 return key=arr[start] i=start j=end while i!=j: while arr[j]&...原创 2018-12-16 16:03:00 · 204 阅读 · 0 评论 -
python算法——堆排序
def build_min_heap(arr): for i in range(int(len(arr)/2),-1,-1): min_heapify(arr,i)def min_heapify(arr,i): c1=2*i+1 c2=2*i+2 min=i n=len(arr) if c1<n and arr[c1]&...原创 2019-07-09 13:50:09 · 187 阅读 · 0 评论 -
算法——m*n方格从左上角到右下角走法
m*n的方格,从左上角开始出发,只能向右走或向下走,一共有多少种走法?(1)动态规划import numpy as npdef left_to_right(m,n): d=np.zeros(dtype=int,shape=(m,n)) d[0][0]=0 for i in range(1,m): d[i][0]=1 for j in ra...原创 2019-07-04 11:01:44 · 12242 阅读 · 6 评论 -
算法——编辑距离
思路见:https://blog.youkuaiyun.com/zhonglixianyun/article/details/82150621if __name__=='__main__': str1='ALGORITHM' str2='ALTRUISTIC' m=len(str1) n=len(str2) d=[[0 for j in range(n+1)] f...转载 2019-07-15 12:50:40 · 273 阅读 · 0 评论