
算法
小沫_jie
这个作者很懒,什么都没留下…
展开
-
【排序】4种基本排序算法-python
1.冒泡排序# -*- coding:utf-8 -*-def bubble_sort(A): for i in range(len(A)-1): # 决定进行的轮数 for j in range(0, len(A)-i-1): # 列表下标 if A[j] > A[j+1]: A[j+1], ...原创 2018-03-13 01:26:28 · 254 阅读 · 0 评论 -
【分治】逆序数对问题:求一个序列中的逆序数对
问题描述解题思路 代码# -*- coding:utf-8 -*-def sort_and_count(A): if len(A) == 1: return A, 0 mid = len(A)//2 left, count_left = sort_and_count(A[:mid]) print('left:'...原创 2018-03-17 17:00:48 · 1484 阅读 · 0 评论 -
【动态规划】0/1背包问题
截图均来自卜老师的《算法讲义》问题描述 伪代码表格的最后一个值即为最大价值,回溯可以得到最优解决方案python实现# -*- coding:utf-8 -*-import numpy as npdef knapsack(n, w, v): opt = np.zeros((n+1, w+1)) for i in rang...原创 2018-03-17 20:35:58 · 287 阅读 · 0 评论 -
【动态规划】序列连配问题:编辑距离
问题描述动态规划求解 伪代码 插入删除均为-3,match为+1,dismatch为-1python实现# -*- coding:utf-8 -*-# 动态规划-序列连配问题:编辑距离import numpy as npdef Needleman_Wunch(S, T): opt = np.zeros((len(T)+1, len(S)+1...原创 2018-03-17 20:37:23 · 451 阅读 · 0 评论 -
【动态规划-TSP旅行商问题】
pass原创 2018-03-17 21:36:05 · 1149 阅读 · 1 评论 -
【动态规划-贪心】区间调度问题
每一个贪心算法背后几乎总有一个动态规划算法从区间调度问题中理解动态规划 与 贪心摘抄自卜老师的《算法讲义》: 使用动态规划求解首先该设所有的课程已经按照它们的结束时间排序对于这个问题,一下子可能我们无从下手,考虑是否可以被转化成小一点的子问题我们把这个求解过程想象成一系列的决策,在每个步骤,我们都要选择一门课。假如我们已经拿到了最优解,我们就问最优解中最后一个决...原创 2018-03-17 22:02:05 · 1703 阅读 · 0 评论 -
【算法设计与分析】基本思路
来自卜老师教程 基本思路:原创 2018-03-17 22:20:57 · 1620 阅读 · 0 评论 -
【动态规划】最长公共子序列和最长公共子串
1. 基本概念最长公共子序列和最长公共子串不是同一回事 最长公共子序列(Longest Common Subsequence, LCS),顾名思义,是指在所有的子序列中最长的那一个。子串是要求更严格的一种子序列,要求在母串中连续地出现下面举例解释: 求解LCS问题,不能使用暴力搜索方法。一个长度为n的序列拥有2的n次方个子序列,它的时间复杂度是指数阶2.【 动态规划】解【最长公...原创 2018-03-18 16:29:49 · 393 阅读 · 0 评论 -
【动态规划】矩阵链式乘法
动态规划与分治算法的联系: (1) 动态规划和分治是非常像的,都是要把大问题分解成子问题,然后将子问题 的解进行合并起来求原问题的解。 (2) 动态规划一般会枚举所有的子问题,要把所有的子问题都解决一遍,但 是它避免了对同一个子问题的重复计算,那它是怎么避免重复的呢,这就是 programming。programming 的意思是说生成一张表,不断的向表中填数,当访问到表中单元时,如果表...转载 2018-03-18 17:07:07 · 932 阅读 · 0 评论