算法
qq_2450394626
这个作者很懒,什么都没留下…
展开
-
背包问题(物品可重复装)
参考文章:动态规划 条件: 1.物品有几种,每种物品数量不限,每种物品有重量weight和价值value属性 2.背包可装的总重量为w 求解: 如何装使得背包所装的物品价值最大?分析: 求容量为w的背包装物品最大价值组合,令p初始值为0,遍历所有的物品,进行如下操作: 如果该物品重量wight,该物品价值value,如果物品重量wight小于背包容量w,则a=容量为w-...原创 2018-08-22 15:10:02 · 2914 阅读 · 0 评论 -
快速排序(快排)Java语言实现
参考文章:十大经典排序参考:各种排序//快排方法,例如数组data[],排序方法:fastSort(data, 0, data.length - 1); public static void fastSort(int arr[], int low, int high) { int l = low; int h = high; int ...原创 2018-05-08 09:33:18 · 317 阅读 · 0 评论 -
堆排序
参考:图解算法之堆排序堆排序是一种选择排序,整体主要由“构建初始堆、交换堆顶元素和末尾元素并重建堆”两部分组成。其中构建初始堆经推导复杂度为O(n),在交换并重建堆的过程中,需交换n-1次,而重建堆的过程中,根据完全二叉树的性质,[log2(n-1),log2(n-2)…1]逐步递减,近似为nlogn。所以堆排序时间复杂度一般认为就是O(nlogn)级。package sortdemo;i...转载 2018-09-22 15:00:44 · 106 阅读 · 0 评论 -
动态规划---拼满x减10优惠券
解题思路:可以用背包问题的思路解题,计算只买前i件商品时满0~j元最少的钱数,然后计算只买前i+1件商品时的情况。定义数组count[][],count[i][j]表示前i件商品必须满j元时最小金额。第 i 件商品价值 price[i],如果选择第 i 件商品,那么前i-1件商品必须满 j - price[i] 元;如果不选择第 i 件商品,那么前 i-1 件商品必须满 j 元。所以动态...原创 2018-10-12 09:53:05 · 1918 阅读 · 1 评论 -
堆排序
用长度为N+1的数组pq[] 来表示一个大小为N的堆,其中pq[0] 不使用,堆元素放在pq[1] 到 pq[N] 中。位置为k 的节点的父节点d的位置是k/2 ,子节点是 k2 和 k2+1 .import java.util.*;public class Main { public static void main(String[] args) { int[] data = { 6...原创 2018-10-12 14:07:20 · 122 阅读 · 0 评论