上一页 1 ··· 3 4 5 6 7 8 下一页

2011年3月20日

算法导论2-4习题解答(合并排序算法)

摘要: CLRS 2-4:要求用O(nlgn)的最坏情况运行时间,确定n个元素的任何排列中逆序对的数目。(提示:修改合并排序)算法思想:逆序对,即i a[j],那么我们可以修改合并排序,每次合并时,都把这样的对数记下来即可,因为合并排序是从最底部开始的(书上给出了一个树形图)。代码如下:#include using namespace std;//寻找一个数组中的逆序对//逆序对://i a[j]//算法思想:修改合并排序#define LEN 5void merge(int* a, int p, int q, int r, int&count){ int* left =new int[q-. 阅读全文

posted @ 2011-03-20 19:39 NULL00 阅读(1809) 评论(0) 推荐(0) 编辑

算法导论2-2习题解答(冒泡算法)

摘要: CLRS 2-2 :冒泡排序算法的正确性解答:这里我只实现了冒泡算法,证明什么的,我也不大会.#include <iostream>usingnamespace std;//冒泡排序#define LEN 35int main(){ int* a =newint[LEN]; for(int i =0; i < LEN; i++) a[i] = i -5; for(int i =0; i < LEN; i++) for(int j = LEN -1; j > i; j--) { if(a[j] > a[j-1]) ... 阅读全文

posted @ 2011-03-20 19:32 NULL00 阅读(459) 评论(0) 推荐(0) 编辑

算法导论2.3-7习题解答(合并排序算法及二分查找)

摘要: CLRS 2.3-7:请给出一个运行时间为O(nlgn)的算法,是之能在一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。算法思想:1.先运用合并排序进行排序 O(nlgn),2.然后运用二分查找法寻找y,y = x - a[i];代码如下: 1 #include <iostream> 2 using namespace std; 3 4 void sort(int*&a, int p, int q, int r) 5 { 6 int* left =new int[q - p +1]; 7 int* right =new int[r - 阅读全文

posted @ 2011-03-20 19:21 NULL00 阅读(1500) 评论(0) 推荐(0) 编辑

算法导论2.1-2习题解答(插入排序算法)

摘要: CLRS 2.1-2 :重写过程insertion-sort,使之按非升序排序。算法思想:模仿书中的代码即可,送分题。#include <iostream>using namespace std;#define LEN 17//最坏的情况O(n2)int main(){ int* a = new int[LEN]; for(int i = 0; i < LEN; i++) a[i] = i - 5; int temp = a[0]; for(int i = 1; i < LEN; i++) { int j = i; int key = a[i]; while(j > 阅读全文

posted @ 2011-03-20 19:06 NULL00 阅读(982) 评论(0) 推荐(0) 编辑

2011年3月14日

C++中的构造函数与析构函数

摘要: 在C++中,当类中含有指针类型的数据时,我们往往要用到三种构造函数,即普通构造函数、拷贝构造函数、赋值构造函数,而且在析构函数中,要正确析构相应的内存。 下面以代码为实例进行演示,同时推荐大家看看林锐博士的《高质量C++/C 编程指南》,其中对编程规范和一些常见的问题进行了深度剖析,《高质量C++/C 编程指南》电子版下载地址为http://download.csdn.net/source/3091633。#include <iostream>#include <cstring>#include <cstdio>using namespace std;cla 阅读全文

posted @ 2011-03-14 17:15 NULL00 阅读(3298) 评论(0) 推荐(0) 编辑

2010年12月14日

Java中的深拷贝(深复制)和浅拷贝(浅复制)

摘要: 深拷贝(深复制)和浅拷贝(浅复制)是两个比较通用的概念,尤其在C++语言中,若不弄懂,则会在delete的时候出问题,但是我们在这幸好用的是Java。虽然java自动管理对象的回收,但对于深拷贝(深复制)和浅拷贝(浅复制),我们还是要给予足够的重视,因为有时这两个概念往往会给我们带来不小的困惑。浅拷贝是指拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象。深拷贝不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象。举例来说更加清楚:对象A1中包含对B1的引用,B1中包含对C1的引用。浅拷贝A1得到A2,A2 中依然包含对B1的引用,B1中依然包含对C1的引用 阅读全文

posted @ 2010-12-14 22:46 NULL00 阅读(32572) 评论(1) 推荐(7) 编辑

2010年10月26日

Java并发程序入门

摘要: 今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级。class Elem implements Runnable{ public static int id = 0; private int cutDown = 5; private int priority; public void setPriority(int priority){ this.priority = priority; } public int getPriority(){ return this.priority; } public void run(){ Thread.currentThread().se. 阅读全文

posted @ 2010-10-26 21:28 NULL00 阅读(526) 评论(0) 推荐(0) 编辑

Java并发编程中的join()与interrupt()函数

摘要: 刚刚写了下Java的并发程序,在此做个笔记。对于线程a和b,在线程b中调用a.join(),那么此时线程b将会被挂起,直至线程a执行完才会有线程b执行的机会,若想打破这种机制,可以调用a.interrupt(),这时,线程b可以不必受刚才的约束。import java.util.concurrent.*;class Sleeper extends Thread { //private String name; private int duration; public Sleeper(String name, int duration){ super(name); this.duration = 阅读全文

posted @ 2010-10-26 20:57 NULL00 阅读(2694) 评论(0) 推荐(0) 编辑

2010年8月24日

SSH免密码登录

摘要: 在配置Hadoop集群分布时,要使用SSH免密码登录,假设现在有两台机器hadoop@wang-PC(192.168.10.100),作为A机,hadoop@chen-PC(192.168.10.107),作为B机。现想hadoop@wang-PC通过ssh免密码登录到hadoop@chen-PC。1.在A机下生成公钥/私钥对。[hadoop@wang-PC ~]$ ssh-keygen -t rsa -P '' 敲击回车键即可, 它在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。2.把A机器下的id_rsa.pub复制到B机器下的 阅读全文

posted @ 2010-08-24 11:48 NULL00 阅读(38156) 评论(0) 推荐(1) 编辑

在Linux下配置hadoop

摘要: 最近学习了一下Hadoop,在这分享一下自己的经验。 我先是在Windows 7,Vista, XP下用CYGWin进行配置的,但是由于问题不断,所以转战到Ubuntu9.10。 下面讲解在Ubuntu9.10下的配置过程。 1.配置SSH sudo apt-get install openssh-serverssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ssh localhost 成功之后进入第二步。 2.将Hadoop压缩包解压到 阅读全文

posted @ 2010-08-24 11:19 NULL00 阅读(1914) 评论(0) 推荐(0) 编辑

2010年4月17日

object expected错误解决方法

摘要: 写一个页面,引用了另外的js,结果触发js事件时,浏览器显示"object expected "错误,说什么action有错,在action硬是纠结了半天,结果发现是由于action跳转之后,路径错了,所以js不能正确引入。原来写的是相对引入路径<script type="text/javascript" src="../../js/My97DatePicker/WdatePicker.js"></script>action触发之后,由于路径变了,所以"../../"不能正确指向原来应有的位 阅读全文

posted @ 2010-04-17 11:18 NULL00 阅读(1162) 评论(0) 推荐(0) 编辑

2009年3月18日

C#实现DES加密解密算法

摘要: 最近学了DES算法,用C#实现了一下,其中算法描述可以从书上或网上了解,关键的一点是加密和解密过程就一点不同,即加密过程使用K1,K2...K15,解密过程使用K15,K14...K1.此例中也可以以文本形式输出。 代码如下(控件的name见文知意):using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Form 阅读全文

posted @ 2009-03-18 15:45 NULL00 阅读(2137) 评论(2) 推荐(1) 编辑

2008年12月25日

让程序只运行一个实例(C#)

摘要: 通常我们会遇到这样的情况,让程序只运行一个实例,比如启动杀毒软件时,只能启动一个,再启动的话就没什么效果!利用程序名来判断不是一个好办法,如果我们把程序名称改一下就可以运行两个完全一样的进程。我们最好利用程序集的Attribute存放特定信息,然后用Assembly对象的GetCustomAttributes()方法获取该信息进行判断。在这里,我有两个解决方法:方法一.我把AssemblyInfo.cs里的[assembly: AssemblyFileVersion("1.0.0.0")]改为[assembly:AssemblyFileVersion("2.0.0 阅读全文

posted @ 2008-12-25 00:57 NULL00 阅读(560) 评论(0) 推荐(1) 编辑

2008年12月2日

使用pipe()与fork()函数通过管道实现父子进程之间的通信

摘要: 学习Unix遇到一个题目,要求使用pipe(),fork()函数编写一个程序,能够通过管道实现父子进程之间的通信。对于fork()函数,调用一次,返回两次:在子进程中返回0;在父进程中返回子进程的进程ID;出错则返回-1。为什么子进程中只需返回0,而无需返回父进程的进程ID? 子进程中可以调用getppid()函数来获得父进程的进程ID为什么在父进程中要返回子进程的进程ID? 一个父进程可能有多个子进程,所以在调用fork()函数创建新进程是就需要保存新创建的子进程的进程ID管道的创建:int pipe(int filedes[2]) 成功返回0; 出错返回-1。filedes[0]用... 阅读全文

posted @ 2008-12-02 14:16 NULL00 阅读(8756) 评论(0) 推荐(0) 编辑

2008年12月1日

SSD6中Exercise4 (substitute.cpp) 答案解析

摘要: 今天终于把Exercise4搞定了,昨天大约优化了0.38秒,今天优化了0.52秒,跨越了一大步。在我们未加任何修饰执行此代码时,其执行后所用时间如图(摘抄主要):FunctionCallee Exclusive Timemain1.495306IndexOf( String, int32 )0.771013insertChar( String, int32, String, int32 )0.444054我们发现insertChar()函数里面就一条return语句,这完全没必要,何必还调用一个函数呢,申请栈释放栈很浪费时间,然后我们去掉这个函数,直接在别的函数里面用它里面的语句。我们再来看 阅读全文

posted @ 2008-12-01 22:55 NULL00 阅读(2717) 评论(1) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 下一页

导航