算法
crystal---
心之所向,素履以往。
生如逆旅,一苇以航。
展开
-
考研复试【排序算法总结】
插入排序:直接插入、希尔排序 选择排序:简单选择排序、堆排序 交换排序:冒泡排序、快速排序 基数排序 归并排序不稳定排序:快速排序、希尔排序、选择排序、堆排序。1、直接插入排序平均时间复杂度:O(n^2);最好情况:O(n);最坏情况:O(n^2)空间复杂度:O(1)稳定# 1.直接插入排序'''将数组分成有序和无序两部分,每次将无序序列中的第一个元素插入到有序序列中的合适位置。'''def insertSort(L): for i in range(1,le原创 2020-05-11 21:24:08 · 528 阅读 · 0 评论 -
贪心算法
PS:本文参考了大量文献资料,在此感谢所有作者。1、算法描述:贪心算法是指在对问题求解时,总是做出在当前看来最好的选择,不从总体最优上加以考虑,只是局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。贪心算法可以认为是动态规划算法的一个特例,如果满足每做出一个局部最优解,得...原创 2020-05-04 15:53:37 · 238 阅读 · 0 评论 -
【完全背包问题】
1、问题描述:有n个物品和一个大小为capacity的背包,每个物品的大小为w[i],每个物品的价值为v[i]。选择合适的物品放入背包中,使得背包内物品的总价值最大。与01背包不同的是,每个物品的数量为无限个。2、思路分析:动态规划定义动态规划数组:dp[i][j]表示从前i个物品中挑选物品放入容量为j的背包中所得到的背包的总价值。则面对第i个物品,可以放k次,对于每一次k的取...原创 2020-05-03 19:44:42 · 198 阅读 · 0 评论 -
【01背包问题】
1、01背包问题问题描述:给定n个物品和一个容量为capacity的背包,物品i的大小为w[i],物品i的价值为v[i]。如何选择物品装入背包,使背包中物品价值最大?思路分析:动态规划动态规划数组dp[i][j]表示当前背包容量为j,前i个物品的价值。则面对物品i,有两种选择:放与不放。①当目前背包容量大于等于当前物品的大小时,可以放,也可以不放,所以要选择两者的最大值。...原创 2020-05-03 13:50:07 · 236 阅读 · 0 评论 -
回溯法
回溯法是深度优先遍历中的一种特有现象,主要用于在一个较大的数据集中寻找满足特定条件的解。回溯法就是当前状态不满足条件时,就回到上一个状态,即回到过去,然后再次向下搜索。在此过程中,需要用到决策树(因为在每一个节点上,都要做出决策要走哪一条路径),在该树上完成向上回溯,其实就是多叉树的遍历问题。回溯算法在遍历的过程中,如果能够提前判断这一条路径不满足结果,就可以提前结束向下的遍历,即剪枝,可以适...原创 2020-04-20 00:07:39 · 639 阅读 · 0 评论 -
最大公约数、最小公倍数
欧几里得算法求最大公约数:def gcd(m, n): if m < n: m, n = n, m while m % n != 0: r = m % n m, n = n, r return n最小公倍数:def lcm(m, n): max_val = max(m, n) while ...原创 2020-03-19 12:51:18 · 112 阅读 · 0 评论 -
递归练习
推荐文章:https://lyl0724.github.io/2020/01/25/1/1、两两交换链表中的节点:https://leetcode-cn.com/problems/swap-nodes-in-pairs/2、对称二叉树:https://leetcode-cn.com/problems/symmetric-tree/comments/3、删除排序链表中的重复元素:ht...原创 2020-03-09 11:28:38 · 122 阅读 · 0 评论 -
DFS
package blue_bridge_1;/*全排列:先找出第一个位置上可以放的数,然后对其余的数进行全排列,知道最后只剩一个数全排列为止。 * 递归思想、深度搜索: * dfs: * 1.if 满足结束条件 * return * 2.深搜: * for..... * 判断是否需要交换 * 递归dfs(深度+1) */public class Test {...原创 2019-05-13 21:18:34 · 163 阅读 · 0 评论 -
实现最大子矩阵和----动态规划
import java.util.Scanner;public class Test { public static int n, m;//n行m列 public static int[][] map;//矩阵 public static int result = 0;//最大和 public static void main(String[] args)...原创 2019-04-28 15:32:51 · 579 阅读 · 0 评论 -
成绩排序
package test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Scanner;public class Test { @SuppressWarnings("resou...原创 2018-10-08 23:07:03 · 548 阅读 · 1 评论