- 博客(14)
- 资源 (4)
- 收藏
- 关注
原创 编程之美--根据遍历结果重建二叉树
学过数据结构和算法的人都能很快的写出二叉树的三种遍历次序。 那么如果已经知道了遍历的结果,能不能把一颗二叉树重新构造出来呢? 给定一颗二叉树,假设每个节点都用唯一的字符来表示,具体结构如下:struct Node{ struct Node* pLeft; struct Node* pRight; char value;};假设已
2012-08-23 18:04:59 2148
原创 字符串处理----Trie树
Trie树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 特性: 1)根节点不包含字符,除根节点外每一个节点都只包含一个字符。 2)从根节点到某一节点,路径上经过的字符连接起来,为该节
2012-08-15 13:46:33 871
转载 在不使用*、/、+、-、%操作符的情况下,如何求一个数的1/3
导读:算法一直是程序员进阶的一道龙门,通常算法都是为了更高效地解决问题而创造的,但也有的只是出于学术性,并不在意其实际意义。这是近日在国外技术问答网站stackoverflow的一个热门问题,不知道你能给出几种解决方法?问:在不使用*、/、+、-、%操作符的情况下,如何求一个数的1/3?(用C语言实现)第一种方法:使用位操作符并实现“+”操作// 替换加法运算符 int add(int
2012-08-13 17:07:55 651
原创 递归与分治策略(3)
有几天没写东西了,下面开始进入分治算法能使用分治算法解决的问题一般具有如下几个方面的特征:1.该问题缩小到一定的程度就能很容易的解决2.该问题可以划分成与原问题具有相同类型的子问题3.利用子问题得出的解可以合并成原问题的解4.所划分的子问题之间是相互独立的,涉及包含公共子问题的问题, 通常使用动态规划算法,后续将给出。基本框架:Divide_and_conquer(
2012-08-13 11:22:43 769
原创 算法源码之递归与分治策略(2)
本文接着上上一篇继续。【问题 1】整数划分问题描述:将正整数n划分成一系列正整数之和:n=n1+n2+....nk 其中n1>=n2>=...nk>=1,k>=1. 现在要求n的不同的划分个数。 问题可能还很迷糊,举个简单的例子: 4 有如下划分:
2012-08-06 13:05:44 494
原创 算法源码之递归与分治策略(1)
分治法的总体思想是: 划分:将一个大的、难以直接解决的问题划分成k个规模较小的、相同的子问题。 如果这k个子问题的规模还不够小,则再划分成k个子问题, 直到问题的规模足够小,很容易直接求出其解为止 求解:对这K个子问题分别求解 合并:将求出的小规模问题的解合并成一个更大规模问题的解,自底向上的逐步求出原问题的解。递归,学过数据结构
2012-08-06 11:07:38 589
原创 算法源码之单链表逆置
记得2012年笔试阿里云的时候,其中就有这么一题,是个填空题,这个问题比较绕,必须一步一图一代码的理解与思考。 其关键代码如下:void ReverseList(Node *L){ Node *p,*q; p=L->next; L->next=NULL; while(p!=NULL){ q=p->next; p->next=L->next;
2012-08-04 16:29:28 794
原创 算法源码之非递归创建/遍历二叉树
递归创建二叉树很简单,主要使用系统提供的栈,效率不是很高。将隐式栈转换为显示栈,就归结为非递归形式了。 在前序、中序、后序非递归创建二叉树中,后序创建稍微绕了一点。 同样,本文没有分析其原理、以及算法的时间、空间复杂度,这些东西在设计算法的时候要考虑, 将其现于纸上,繁琐。#include#include#define SIZE 8typ
2012-08-04 13:19:17 1662
原创 算法源码之哈弗曼编、译码
学习有三种境界1.理解了2.比较了3.思考了很多时候我们都只是停留在第一阶段,光理解了,还不够,无法给我们留下深刻的印象。本文实现了对26个小写英文字母在日常生活中出现的次数构(权重)造哈夫曼树,并根据输入的英文进行编译码 #include#include#include#define MAX 5000typedef char *HuffmanCo
2012-08-04 12:41:09 1220 1
原创 Linux下安装Mysql--源码安装
1、用root登录系统,增加mysql用户和组 #groupadd mysql#useradd -g mysql mysql2、解压源码包,并进入解压后的目录 #tar xvfz mysql-5.1.38.tar.gz#cd mysql-5.1.383、用configure工具来编译源代码,这里我们可以使用很多的参数,具体可以用configu
2012-08-04 11:10:50 496
原创 Linux下安装Mysql--二进制安装
1.登录linux系统,最好以root身份登录。 若不是,则在执行某些普通用户没有权限的命令时,在前面天添加sudo2.增加Mysql用户和组 #groupadd mysql #useradd -g mysql mysql3.在linux终端创建安装包目录 #mkdir /usr/local/
2012-08-04 11:10:02 848
原创 Windows下使用secureCRT 连接linux虚拟机
使用secureCRT 连接linux虚拟机1.虚拟机的网络连接为桥接2.对虚拟机的网络连接进行设置,在Ubuntu,系统-->首选项-->网络链接下 将Auto eth0 打开,并选择自动连接。3.若此时连接不上SecureCRT,就查看虚拟机是否安装了ssh,若没有安装,则使用#apt-get install ssh cd etc/init.d/
2012-08-04 11:09:08 833
原创 算法源码之哈弗曼编码
本文没有论述哈弗曼编码的原理、过程。只是将其实现过程现于纸上,为更多朋友在紧急的时候提供方便。忘广大朋友提出批评与指正,后续将不断撰写常用的算法源码#include#include#define MAXVALUE 10typedef struct HTNode{ float weight; //结点权重 int parent; //当前结点的父节点 in
2012-08-03 18:01:25 557
Oracle笔记
2012-08-04
数据挖掘原理与算法
2011-11-04
c++算法之回溯法回溯法也称为试探法
2011-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人