思路:1、排序,取前k个元素;O(NlogN);2、分治,O(n),利用快排的思想;3、用set 维护最小的k个数,O(NlogK),可处理海量数据。...
分类:
其他好文 时间:
2014-05-26 03:38:58
阅读次数:
222
快速排序也利用了分治的思想,跟归并排序排序相比减少了交换次数int partition(int
a[],int p,int r){ int x = a[r]; int i = p-1; int j; for(j = p;j<r;j++) {
if(a[j]...
分类:
其他好文 时间:
2014-05-26 02:47:46
阅读次数:
226
初期:
一.基本算法:
(1)枚举. (poj1753,poj2965)
(2)贪心(poj1328,poj2109,poj2586)
(3)递归和分治法.
(4)递推.
(5)构造法.(poj3295)
(6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.图算法:
...
分类:
其他好文 时间:
2014-05-25 01:58:06
阅读次数:
247
1.课程安排表:
1. 线性表
2. 字符串
3. 栈和队列
4.树
5.查找
6.排序
7.暴力枚举法
8.广度优先搜索
9.深度优先搜索
10.分治
11.贪心
12.动态规划
13.图
14.数学方法与常见模型
15.大整数运算
16. 基础功能
2. 编程技巧:
1.把较大的数组放在main 函数(全局变量)外,作为全局变量,这样可以防止栈溢出,...
分类:
其他好文 时间:
2014-05-25 00:31:30
阅读次数:
348
{1,2,3}子集合的个数,有{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3},求n个元素组成的集合,m个元素组成的子集合的个数。
如上例,3个元素由其中2个组成的子集合有3个。...
分类:
其他好文 时间:
2014-05-24 19:29:37
阅读次数:
255
快速排序如同其名,是排序中性能比较好的一个排序算法,当数组是顺序的话,他的最差的时间复杂度是O(N^2),一般的时间复杂度是O(n*lgn).
快速排序的思想就是分治,每一趟排序过程都把一个数放到最终的位置上面去。然后这个位置把数组分为前半部分和后半部分。针对前半部分和后半部分再递推进行快速排序。
快排的java实现:
public class Sort {
public stat...
分类:
其他好文 时间:
2014-05-23 01:44:26
阅读次数:
218
分治法,分而治之,基本思路:分,解,和。
初探分治之快速排序。...
分类:
其他好文 时间:
2014-05-21 15:34:37
阅读次数:
237
问题描述:一个有N个整数元素的一维数组(A[0], A[1],
A[2],...,A[n-1]),这个数组当然有很多子数组,那么子数组之和的最大值是什么呢?解法:1. 暴力解法-------O(N^3)2.
改进版暴力解法-------O(N^2)*3. 分治算法-------O(NlogN)(暂时...
分类:
其他好文 时间:
2014-05-18 20:18:57
阅读次数:
341
一 基本概念
分治法,顾名思义分而治之的意思,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
二基本思想及策略
分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
分治策略是:对于一个规模为n的问题,若该问题可以容易地解...
分类:
其他好文 时间:
2014-05-18 14:31:14
阅读次数:
331
不知为何,这个代码只能得95分放一下傻逼代码。。。#include#include#include#includeusing namespace std;int
n,K;int nn2=1,nn=1,nod;#define N 1000000#define ed(x) (x>>1)#define a...
分类:
其他好文 时间:
2014-05-17 17:55:40
阅读次数:
425