摘要:
一个港口上有N辆车排队,有卡车和货车,用0代表卡车,1代表货车,现在有如下规则,当同类型的车排队时,先来的车在前面,而卡车和货车来时,卡车先,除了以上规则外,还有如下规则:当有4辆卡车时,必须有一辆货车,当没有货车时,卡车可以排上,当卡车不到4量时,可以用货车补上,下面是一个例子7输入:0 0 1 0 1 0 0输出:0 1 3 5 2 6 4下面讲下思路:对于输入我们可以编号,从0开始:输入:0 0 1 0 1 0 0编号:0 1 2 3 4 5 6此时,可以先对同样的0和1进行排序,要稳定排序,此时可以使用基数排序 排序:0 0 0 0 0 1 1 编号:0 1 3 5 6 2 4接着按照
阅读全文
posted @ 2013-09-15 20:24
you Richer
阅读(221)
推荐(0)
摘要:
外键列上缺少索引会带来两个问题,限制并发性、影响性能。而这两个问题中的任意一个都可能会造成严重性能问题。 无论是Oracle的官方文档,还是在Tom的书中都说明了两种情况下可以忽略外键上的索引。其实我认为不需要那么麻烦,与增加一个 索引所带来的性能开销和磁盘空间开销相比,缺失索引可能引发的问题要严重得多。因此,我会选择在所有的外键列上添加索引,虽然 可能导致创建了部分多余的索引,但是这样相除了外键约束由于确实索引所带来的性能问题和并发性问题。 如果外键列上缺少索引,从主表关联子表的查询就只能对子表选择全表扫描的查询,这是显而易见的问题: SQL> CREATE TABLE T_P ...
阅读全文
posted @ 2013-09-15 20:23
you Richer
阅读(396)
推荐(0)
摘要:
单链表的逆置是一个非常经典的问题,这里利用两个思想进行解决。 首先,我们需要看下原理图,其实两个思想都是一样的,都是使后一个的节点的 next 指针指向前一个节点,依次递推,直到第二个节点指向第一个节点,第一个节点的 next 指针指向 NULL。 第一种方法: 在链表往前走的过程中,记录前一个节点,当前节点和后一个节点,并使当前节点的 next 指针指向前一个节点,直到最后一个节点指向倒数第二个节点 算法实现如下:void reverse_list(LinkList list){ LinkedNode *pre = list; LinkedNode *cur = lis...
阅读全文
posted @ 2013-09-15 20:20
you Richer
阅读(1240)
推荐(0)
摘要:
败者树在外排序中用到,每加入一个数字时,调整树需要o(lgk),比较快。外排序过程主要分为两个阶段:(1)初始化各归并段写入硬盘,初识化的方法,可利用内排序方法还可以一种叫置换选择排序的方法(参考数据结构--李春葆)。 为什么需要败者树 外排序过程考虑时间代价时,主要考虑访问磁盘的次数。那么基于两路归并排序的缺点在哪里呢?主要是访问磁盘的次数太多了?请看下图: 假设初始化归并段有m个,则二路归并需要访问硬盘的次数为log2(m)。按照这个方法,那是不是我们只要增加k就可以减少次数呢?答案是肯定的。就是说是k路归并的话,访问硬盘次数就是logk(m)。但是这里边存在一个矛盾:如果增...
阅读全文
posted @ 2013-09-15 20:18
you Richer
阅读(1157)
推荐(0)
摘要:
编写日期: 2013年9月15日另一中解法:点击查看解决思路: 在Java中,排序需要复写的是 equals 方法 和 Comparable 接口 的public int compareTo(T o); 方法步骤:1. 使用正则表达式来判断数字,多个连续的数字作为一组,2. 一次检索出数字组合,3. 检出下一组数字,如果有,则进入步骤4,否则进入步骤6.4. 如果两组数字出现的位置相等,并且前面部分的字符串相等,则进入第5步。否则break,跳到第6步.5. 如果前面部分的字符串完全一致。则比较两个数字的大小,如果大小一致,则进入下一组,即步骤3.如果大小不一致,则可以比对出来大小,比较结束6
阅读全文
posted @ 2013-09-15 20:16
you Richer
阅读(2598)
推荐(0)
摘要:
从字典中取值(不想由于搜索的键不存在而异常)解决方法:使用字典的get方法 (get方法只读取字典的值而不会去修改字典)d={'key':'value'}print d.get('key','not found')print d.get('keys','not found')假如键key存在,那么get方法就会返回相应的值,否则,返回第二个参数 给字典添加一个条目解决方法:使用字典的setdefault方法,假设正在创建一个由单词到页数的映射,关键的代码为def addword(theIndex,
阅读全文
posted @ 2013-09-15 20:14
you Richer
阅读(403)
推荐(0)
摘要:
1.Date对象: New Document 运行结果:我们来改变一下输出的方式: New Document 运行结果:明明是9月,却显示的是8月,说明getMonth是从下标0开始的,所以要加1: document.write(date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"); 这样就会输出正确的结果了。2.String对象:2.1 New Document 结果是true,这里与java是有区别的,并不存在引用,没有e...
阅读全文
posted @ 2013-09-15 20:12
you Richer
阅读(197)
推荐(0)
摘要:
对于游戏开发而言,经常使用到异步相关操作,因此在使用moduleframework之前应该提供一个异步操作的类。 以后相关的异步操作均继承这个类AsyncOperation:先贴出代码:#ifndef __ASYNC_OPERATION_H__#define __ASYNC_OPERATION_H__#include class AsyncOperation{public: typedef boost::function(void) TypeOnExecute; typedef boost::function(void) TypeOnComplete; typedef boo...
阅读全文
posted @ 2013-09-15 20:08
you Richer
阅读(244)
推荐(0)
摘要:
题目描述: 现有公园游船租赁处请你编写一个租船管理系统。当游客租船时,管理员输入船号并按下S键,系统开始计时;当游客还船时,管理员输入船号并按下E键,系统结束计时。船号为不超过100的正整数。当管理员将0作为船号输入时,表示一天租船工作结束,系统应输出当天的游客租船次数和平均租船时间。 注意:由于线路偶尔会有故障,可能出现不完整的纪录,即只有租船没有还船,或者只有还船没有租船的纪录,系统应能自动忽略这种无效纪录。 输入: 测试输入包含若干测试用例,每个测试用例为一整天的租船纪录,格式为: 船号(1~100) 键值(S或E) 发生时间(小时:分钟) 每一天的纪录保证...
阅读全文
posted @ 2013-09-15 20:07
you Richer
阅读(237)
推荐(0)
摘要:
// 直方图的RGB.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "opencv2/opencv.hpp"#define cvQueryHistValue_1D( hist, idx0 ) \ ((float)cvGetReal1D( (hist)->bins, (idx0)))IplImage* DrawHistogram(CvHistogram* hist, int scaleX= 1, int scaleY= 1) { float histMax= 0; cvGetMinMaxHistV
阅读全文
posted @ 2013-09-15 20:05
you Richer
阅读(258)
推荐(0)