- 博客(10)
- 资源 (6)
- 收藏
- 关注
转载 求二叉树中节点的最大距离
<br />struct NODE{ NODE* pLeft; NODE* pRight; int nMaxLeft; //左子树中的最长距离 int nMaxRight; //右子树中的最长的距离 char chValue; //该节点的值};int nMaxlen = 0;void FindMaxlen(NODE* pRoot){ if(NULL == pRoot) return; //左子
2010-11-30 15:02:00 730
原创 堆排序
堆排序是一树形选择排序,它的特点是,在排序过程中,将R[1..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录。 堆的定义是:n个关键字序列K1,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1)Ki≤K2i 且 Ki≤K2i+1 或 (2)Ki≥K2i 且 Ki≥K2i+1(1≤i≤ën/2û) 满足第(1)种情况的堆称为小根堆
2010-11-29 11:52:00 721
原创 归并排序(2路)
<br /><br /> <br /> <br />#include <iostream>#include <ctime>using namespace std;//将两个较小的子问题合并成一个较大的问题void Merge(int a[],int b[],int left,int m,int right);//将大问题分解为较小的问题:2路归并void MergeSort(int a[],int b[],int left,int right){ if(lef
2010-11-27 20:32:00 631
原创 数字之谜
(一)计算N!末尾0的个数,两种方法的代码如下:#include using namespace std;int NJieChengLastZero1(int N){ int j,ret = 0; for(int i=1;i>N; cout
2010-11-10 16:38:00 661
转载 Linux多线程编程(实践)
<br /> 下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。<br />或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。<br /><br />#include <pthread.h>#include <stdio.h>#include <sys/time.h>#include <string.h>#define MAX 10pthread_t thread[2];pthread_mutex_t mut;int number
2010-11-10 10:17:00 722
转载 Linux多线程编程(简明)
前言 /* 是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能: 1)有一int型全局变量g_Flag初始值为0; 2)在主线称中起动线程1,打印“this is thread1”,并将g_Flag设置为1 3)在主线称中启动线程2,打印“this is thread2”,并将g_Flag设置为2 4)线程序1需要在线程2退出后才能退出 5)主线程在检测到g_Flag从1变为2,或者从2变为1的时候退出 */#include#include#
2010-11-10 09:59:00 649
转载 Linux多线程编程入门(3)
3、条件变量 前一节中我们讲述了如何使用互斥锁来实现线程间数据的共享和通信,互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间的同步。
2010-11-10 00:20:00 766
转载 Linux多线程编程入门(2)
线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我们采用了线程的默认属性,即为非分离状态,这种情况下,原有的线程等待创建的线程结束。只有当pthread_join()函数返回时,创建的线程才算终止,才能释放自己占用的系统资源。而分离线程不是这样子的,它没有被其他的线程所等待,自己运行结束了,线程也就终止了,马上释放系统资源。程序员应该根据自己的需要,选择适当的分离状态。设置线程分离状态的函数为 pthread_attr_setdetachstate(pthread_attr_
2010-11-10 00:18:00 608
转载 Linux多线程编程入门(1)
引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常
2010-11-10 00:15:00 752
原创 N个数中找三个数,使其和的绝对值最小--
原题: Write a function to find any subset of 3 integers from a set of N integers that have a sum with the smallest absolute value, and analyze the time and space complexity of your function. The input to this function is a pointer or reference to an a
2010-11-02 11:28:00 3531
CentOS 5.5下的svn环境的配置详解(包括安装包)
2011-04-06
PHP集成开发环境Zend Studio的配置及调试技术详细讲解(附图)
2010-08-24
求图中两点间的所有路径(包括最短路径)——vs2008下实现
2010-06-29
一个家庭收支管理程序(VS2005下MFC开发)
2010-06-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人