题意:有重量和价值分别为wi,vi的n个物品。从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值。
限制条件:
1
1
1
输入:
n = 4
w = {2, 1, 3, 2}
v = {3, 2, 4, 2}
W = 5
输出:
7(挑选0、1、3号物品)
分析:
这个问题是前面介绍过的背包问题,不过这次价值和重量都可以是非常大的数值,...
分类:
其他好文 时间:
2016-04-19 19:52:39
阅读次数:
142
题目链接: http://www.lightoj.com/volume_showproblem.php?problem=1235 题目描述: 给出n个硬币,每种硬币最多使用两次,问能否组成K面值? 解题思路: 因为K草鸡大,尽管n很小,但是2^n很大,无法用背包做到O(nK)的复杂度。如果暴力枚举复 ...
分类:
其他好文 时间:
2016-04-18 22:26:51
阅读次数:
153
最近总结一下排序算法相关知识。 排序算法的分类: 插入类排序:在已经有序的序列中,插入一个新的记录。 直接插入排序、折半插入排序、希尔排序。 交换类排序:交换类排序的核心是“交换”,即每一趟排序,都能通过一系列的“交换”动作,让一个记录排到它最终的位置上。 冒泡排序、快速排序。 选择类排序:每一趟排 ...
分类:
其他好文 时间:
2016-04-18 15:02:11
阅读次数:
116
1、二分查找 二分查找又称折半查找,它是一种效率较高的查找方法。 二分查找要求:线性表是有序表,即表中节点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。 2、二分查找的基本思想 二分查找的基本思想是:(设R[low..high]是当前的查找区间) (1)首先确定该区间的中点位 ...
分类:
其他好文 时间:
2016-04-18 11:40:14
阅读次数:
192
程序员必须要掌握的排序算法以及查找方法经典的排序算法要一个一个的弄懂。借个图,列出学习提纲。三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表2016-04-1709:08:04
分类:
编程语言 时间:
2016-04-17 18:10:30
阅读次数:
298
要求:给定已按升序排好序的n个元素a[0:n-1],现要在这n个元素中找出一特定元素x。 分析: 该问题的规模缩小到一定的程度就可以容易地解决; 如果n=1即只有一个元素,则只要比较这个元素和x就可以确定x是否在表中。因此这个问题满足分治法的第一个适用条件 该问题可以分解为若干个规模较小的相同问题; ...
分类:
编程语言 时间:
2016-04-12 21:03:01
阅读次数:
180
二分查找前提条件:带查找的数列有序 二分查找,也叫折半查找,它遵循三步法,把原序列分成元素个数尽量接近的两个子序列,然后递归查找。二分查找只适用于有序序列。 时间复杂度:O(logn) 尽管可以递归实现,但二分查找一般写成非递归的。 /* @function:在有序序列A中查找key的位置 @par ...
分类:
其他好文 时间:
2016-04-10 16:26:45
阅读次数:
205
在计算机科学中,折半搜索(英语:half-interval search),也称二分查找算法(binary search)、二分搜索法、二分搜索、二分探索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于 ...
分类:
编程语言 时间:
2016-04-07 20:20:24
阅读次数:
306
在计算机科学中,折半搜索(英语:half-interval search),也称二分查找算法(binary search)、二分搜索法、二分搜索、二分探索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于 ...
分类:
编程语言 时间:
2016-04-06 18:24:48
阅读次数:
193
//选择排序voidSelectSort(SeqList*pSeqList){inti=0,j=0;intiMaxPos=0;intiMinPos=0;DataTypetemp;for(;i<pSeqList->Size/2;++i){iMaxPos=i;iMinPos=i;for(j=1;j<pSeqList->Size-i;j++){if(pSeqList->arry[iMaxPos]<pSeqList->arry[j]){iMaxPos=j;}if(pS..
分类:
编程语言 时间:
2016-04-06 11:38:25
阅读次数:
195