- 博客(16)
- 资源 (35)
- 问答 (2)
- 收藏
- 关注
原创 10亿数据中取最大的100个数据
思路1:根据快速排序划分的思想 (1)递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 (2)对(b,d]重复(1)操作,直到最右边的区间个数小于100个。注意[a,b)区间不用划分 (3)返回上一个区间,并返回此区间的数字数目。接着方法仍然是对上一区间的左边进行划分,分为[a2,b2)b2(b2,d2]两个区间,取(b2,d2]区间。如果
2016-04-18 22:11:22
5783
1
原创 堆排序
1、堆的定义 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]。在最大堆中,最大元素放在根节点中,且对任一非根节点,它的值小于或等于其双亲节点值。最小对则相反,根节点是最小元素。2、堆排序的思想 利用最大堆(最小堆)堆顶记录的是最大关键字(最小
2016-04-18 11:02:04
2199
原创 生产者/消费者模式 (java)
生产者/消费者模式要求在同一个进程地址空间内执行的两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。 消费者线程从缓冲区中获得物品,然后释放缓冲区。 当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。 当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。 优点: (1)解耦。假设生产
2016-03-31 20:38:42
842
原创 选择排序
选择排序的基本思想是:假设排序表为L[1…n],每一趟(例如第i趟)即从L[i…n]中选择关键字最小的元素与L(i)交换,每一趟排序可以确定一个元素的最终位置。这样经过n-1趟排序就可以使得整个排序表有序。public class SelectSort { public static void main(String[] args) { int[] values = { 120
2016-03-28 18:42:28
382
原创 基数排序
基数排序是一种很特别的排序算法,它不是基于比较进行排序的,而是采用多关键字排序思想,借助“分配”和“收集”两种操作对单逻辑关键字进行排序。 基数排序利用了数字只有0,1,…,9这10个数字的特点, 排序步骤如下: 给定一组数字,如{ 278, 109, 63, 930, 589, 184, 505, 269, 8, 83 } (1)判断数据在个位数的大小,排列数据; (2)根据(1)的结果,
2016-03-28 16:47:21
532
原创 归并排序
“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。假定待排序表含有n个记录,则可以看成是n歌有序的子表,每个子表长度为1,然后两两归并,得到⌈n/2⌉个长度为2或1的有序表,再两两归并,… … 如此重复,直到合并成一个长度为n的有序表为止,这种排序方法称为2-路归并排序。如下图的例子: public class MergeSort {public static void main(St
2016-03-28 15:55:11
524
原创 插入排序
插入排序的基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。插入排序可以引申出三个排序算法:直接插入排序,折半插入排序,希尔排序。这里先介绍直接插入排序。 假设在排序过程中,带排序表L[1…n]在某次排序过程中的某一时刻状态如下: { 有序列表L[1…i-1] | L(i) | 无序列表L[i+1…n] } 为了将元素L(i)插
2016-03-28 15:39:56
482
原创 交换排序之快速排序
快速排序是对冒泡排序的一种改进。其基本思想是基于分治法的:在待排序表L[1…n]中任取一个元素pivot作为基准,通过一趟排序将待排序表划分为独立的两部分L[1…k-1]和L[k+1…n],使得L[1…k-1]中所有元素小于pivot,L[k+1…n]中所有元素大于或等于pivot,则pivot放在了其最终位置L[k]上,这个过程称作一趟快速排序。而后分别递归地对两个子表重复上述过程,直至每部分内只
2016-03-28 13:12:18
749
原创 交换排序之冒泡排序
冒泡排序算法的基本思想是:假设待排序表长为n,从前往后(或从后往前)两两比较相邻元素的值,若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们成它为一趟冒泡,结果将最大(最小)的元素交换到待排序列的最后一个位置。下一趟冒泡时,前一趟确定的最大元素不再参与比较,待排序列减少一个元素,每趟冒泡的结果把序列中的最大元素放到了序列的最终位置。
2016-03-28 12:25:39
707
原创 Hadoop集群安装配置
集群部署介绍 1.1Hadoop简介 (这部分先放着,环境搭好了再补上) 1.2环境说明 我的环境是在Ubuntu Server 12.04中配置的,Hadoop集群中包括4个节点:1个Master,3个Salve,节点之间可以相互ping通,节点IP地址分布如下: Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器
2016-03-05 15:54:26
541
原创 处理机的高级、中级和低级调度
处理机调度是为了解决多个进程或线程争夺CPU的问题。在多道程序系统中,通常会有多个进程或线程同时竞争CPU,只要有两个及以上的进程或线程处于就绪状态就有可能出现这样的情况。当可用的CPU个数少于进程和线程数时,就必须选择下一个进入CPU的进程或线程,而这部分工作由处理机执行。处理机的调度分为高级调度、中级调度和低级调度。1、高级调度高级调度发生在作业对应的新进程创建中,它决定一个进程是否被创建,或者
2016-03-03 20:54:54
18450
原创 处理机的作业调度及其算法
作业调度用来做什么呢?我们知道,在批处理系统中,作业进入系统后只是存在于外存,因此作业调度是适用于批处理系统的一种调度方式。1、作业控制块(JCB)作业进入系统后,系统会为每个作业分配一个作业控制块(JCB),用于记录作业的相关信息,这个和进程控制块(PCB)是相似的,在作业退出系统是,该控制块也会被撤销。也就是说,JCB作为作业的唯一标志,随作业而生,随作业而死。2、作业的三种状态在作业的生命周期
2016-03-03 20:53:17
1233
原创 进程调度及其算法
1、进程调度用来做什么?(1)进程调度记录者系统中所有进程的有关情况和状态特征(2)进程调度负责从就绪队列中选取一个就绪进程、分配给CPU并决定它运行多长时间。(3)在进程的开始和结速阶段,进程调度实施处理机的分配与回收、修改PCB表项等。2、什么时候发生进程调度?(1)当新进程建立时,调度算法可以合理地选择运行父进程或者子进程。(2)在有进程退出时,必须从就绪队列中引入新进程,如果就绪队列为空,通
2016-03-03 20:49:38
1519
原创 Java的方法重载
当调用某个方法时,一般通过它的方法名来实现调用。当在java和其他一些面向对象语言中,可以使用具有不同参数表的相同方法名调用多个方法,这就是我们说的“重载”。当需要对不同数据执行类似方法时,重载经常被使用;就像为丈夫和孩子做衣服一样,衣服大小不一样,即执行不同的数据,但做衣服的方法却是一样的,即执行了类似的方法。你可能会疑惑,为什么不给每个方法不同的方法名,这样不是更简单?事实上,如果不进行重载的话
2016-03-03 20:46:49
421
原创 二叉树前序、中序和后序的互求
最近复习了二叉树的前、中、后序,把它整理了一下,和大家分享,也便于日后复习用。1、 首先,我们看看前序、中序、后序遍历的特性:前序遍历:首先访问根节点,其次访问左子树,最后访问右子树。在遍历左、右子树时,仍然先访问根节点,然后遍历其左子树,最后遍历其右子树。(根->左->右)中序遍历:首先访问左子树,其次访问根节点,最后访问右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树。
2016-03-03 20:44:55
1251
原创 linux下jdk和tomcat安装及配置
在官网下载最新的jdk和tomcat,我这里用的是jdk-8-linux-x64.tar.gz和apache-tomcat-8.tar.gz,然后用xftp传到linux的/home/ubuntu目录下。 将jdk解压到指定目录,并且修改好名字方便我们管理。我这里是/usr/local,修改后的文件名是jdk8sudo tar zxvf /home/ubuntu/jdk-8-linux-x64
2016-01-03 18:50:55
1195
Android DrawerLayout 高仿QQ5.2双向侧滑菜单
2014-11-29
Android仿微信界面
2014-11-25
spring jdbc 常用jar包
2014-11-24
Android API
2014-11-24
Jpcap.jar下载
2014-11-24
java网络抓包(Jpcap0.7的教程 示例程序 源码 jpcap.jar)
2014-11-24
ssh所需jar包 ( struts2 + spring3 + hibernate4 )
2014-11-24
easywechat试用版 java微信公众平台开发框架
2014-11-24
jsoup常用包下载
2014-11-24
Java时间选择器jar包
2014-11-24
javax.mail.jar JavaMail所需jar包
2014-11-24
2014java技术与框架使用情况统计报告
2014-11-24
HttpClient最新资源jar包
2014-11-24
MongodbVUE
2015-07-07
Python学习手册(第4版) 中文版
2015-05-27
Solr参考书籍
2015-05-03
Head First Java.pdf
2014-12-28
即时聊天app后台通讯技术除了Socket外还有哪些选择?
2015-04-05
spring jdbc template 用户名密码验证
2015-03-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人