
算法
文章平均质量分 75
jfkidear
这个作者很懒,什么都没留下…
展开
-
数据结构 排序0
数据结构 排序02009-07-23 15:14 53人阅读 评论(0) 收藏 举报数据结构是程序的骨架,程序速度的好坏很大程度与数据结构骨架相关。为此做下总结,以备后查!排序算法分很多种,其主要的有:1.冒泡排序,2.选择排序,3.插入排序,4.归并排序,5.希尔排序,6.快速排序,7.堆排序,8.计数排序,9.基数排序,10.桶排序等。现在介绍两个概念:排序稳定性:转载 2012-02-20 23:08:34 · 537 阅读 · 0 评论 -
红黑树的介绍和实现(二)
红黑树的介绍和实现(二)2010-10-08 19:29:43| 分类: 默认分类|字号 订阅//file RBTree.h//written by saturnman#ifndef _RB_TREE_H_#define _RB_TREE_H_#include#include#include#includeusing namespace s转载 2012-02-21 18:26:53 · 1554 阅读 · 0 评论 -
通过分析 JDK 源代码研究 TreeMap 红黑树算法实现
developerWorks 中国Java technology文档库通过分析 JDK 源代码研究 TreeMap 红黑树算法实现李 刚, 自由撰稿人简介: TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeS转载 2012-02-21 18:28:13 · 1614 阅读 · 0 评论 -
示例,红黑树插入和删除过程
示例,红黑树插入和删除过程 |字号 订阅依次插入如下序列,最后再依次删除如下序列,图片为自动生成。12 1 9 2 0 11 7 19 4 15 18 5 14 13 10 16 6 3 8 17转载 2012-02-21 18:29:23 · 1429 阅读 · 0 评论 -
计算字符串的相似度--编程之美3.3
计算字符串的相似度--编程之美3.3作者:tzc_yujunyong 来源:博客园 发布时间:2011-04-03 20:16 阅读:7 次 原文链接 [收藏] 许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程序。我们定义一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把“a”替换为“b”);转载 2012-02-23 23:21:09 · 584 阅读 · 0 评论 -
《编程之美: 求二叉树中节点的最大距离》的另一个解法
《编程之美: 求二叉树中节点的最大距离》的另一个解法2010-02-25 03:32 by Milo Yip, 8487 visits, 收藏, 编辑昨天花了一个晚上为《编程之美》,在豆瓣写了一篇书评《迟来的书评和感想──给喜爱编程的朋友》。书评就不转载到这里了,取而代之,在这里介绍书里其中一条问题的另一个解法。这个解法比较简短易读及降低了空间复杂度,或者可以说觉得比较「美」吧转载 2012-02-25 23:01:00 · 840 阅读 · 1 评论 -
哈希表的使用
哈希表的使用分类: 算法与数据结构2007-03-12 17:30 7246人阅读 评论(7) 收藏 举报数据结构:hash_map原理 这是一节让你深入理解hash_map的介绍,如果你只是想囫囵吞枣,不想理解其原理,你倒是可以略过这一节,但我还是建议你看看,多了解一些没有坏处。hash_map基于hash table(哈希表)。哈希表最大的优点,就是把数据的存储和查找消转载 2012-02-19 16:53:03 · 570 阅读 · 0 评论 -
堆排序应用
数据结构 排序3.1 堆排序应用12009-07-27 10:08 211人阅读 评论(0) 收藏 举报 网上看到一个面试题, 题目是这样的:在一百万个浮点数据中找到前100个最大的数!由于数据结构的知识在大学期间没有开专业的课程,而只是在工作后陆陆续续学习了些,很多学得不扎实。因此借这个机会把排序的10来种算法好好学习了下。 借鉴《编程之美》的分析思路,转载 2012-02-19 16:25:52 · 630 阅读 · 0 评论 -
各种排序算法的稳定性和时间复杂度小结
各种排序算法的稳定性和时间复杂度小结分类: C/C++2009-02-22 16:03 17755人阅读 评论(17) 收藏 举报选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。冒泡法: 这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡: 复杂度为O转载 2012-02-20 23:06:02 · 366 阅读 · 0 评论 -
红黑树的介绍和实现(一)
红黑树的介绍和实现(一)[原创] |字号 订阅 一、红黑树(Red-Black Tree)是二叉搜索树(Binary Search Tree)的一种。二叉搜索树在最坏的情况下可能会变成一个链表(当所有节点按从小到大的顺序依次插入后)。这种低效产生的原因是树没有维持一定的平衡性,要提高搜索效率,就要想办法来维持树左边的平衡,也就是要尽转载 2012-02-21 18:12:15 · 1331 阅读 · 0 评论 -
Tries树(转载)
Tries树(转载) (2011-10-16 18:33:23)转载▼标签: 杂谈 http://zhangzhibiao02005.blog.163.com/blog/static/373678202010667524646/昨天在北邮人bbs上逛时,看到有人在讨论字符窜提示的问题,有人回帖用trie树来做,转载 2012-03-06 11:47:44 · 1188 阅读 · 0 评论 -
中文网页自动分类新算法
http://blog.youkuaiyun.com/smildlzj/article/details/1320690 中文网页自动分类新算法分类: JAVA搜索引擎资料2006-10-04 19:52 1807人阅读 评论(2) 收藏 举报张俐 李星 陆大 摘 要: 为了有效地组织因特网上极其丰富的信息资源,通过分析中文和中文网页的特点,提出了一种新转载 2012-03-22 18:45:18 · 3506 阅读 · 0 评论 -
KNN算法的實現
KNN算法 基本思想2009年02月08日 星期日 16:42KNN(K 最近邻居)算法该算法的基本思路是:在给定新文本后,考虑在训练文本集中与该新文本距离最近(最相似)的 K 篇文本,根据这 K 篇文本所属的类别判定新文本所属的类别,具体的算法步骤如下:STEP ONE:根据特征项集合重新描述训练文本向量STEP TWO:在新文本到达后,根据特征词转载 2012-03-22 18:51:40 · 5703 阅读 · 1 评论 -
SVM算法实现(一)
SVM算法实现(一)分类: 算法2011-02-01 19:44 8847人阅读 评论(23) 收藏 举报关键字(keywords):SVM 支持向量机 SMO算法 实现 机器学习 如果对SVM原理不是很懂的,可以先看一下入门的视频,对帮助理解很有用的,然后再深入一点可以看看这几篇入门文章,作者写得挺详细,看完以后SVM的基础就了解得差不多了,再然后买本转载 2012-03-22 18:53:23 · 1446 阅读 · 0 评论 -
算法
http://blog.youkuaiyun.com/v_JULY_vhttp://blog.youkuaiyun.com/v_JULY_v/rss/listhttp://blog.youkuaiyun.com/v_july_v/article/details/6279498转载 2012-05-03 23:46:59 · 492 阅读 · 0 评论 -
支持向量机通俗导论(理解SVM的三层境界)
支持向量机通俗导论(理解SVM的三层境界)分类: 30.Machine L&Data Mining2012-06-01 22:48 3882人阅读 评论(18) 收藏 举报 支持向量机通俗导论(理解SVM的三层境界)作者:July、pluskid;致谢:Wind、白石。出处:结构之法算法之道blog。前言转载 2012-06-07 14:19:54 · 2562 阅读 · 0 评论 -
程序员面试100题之六:最长公共子串
程序员面试100题之六:最长公共子串分类: 数据结构 C/C++2011-08-14 22:44 1141人阅读 评论(2) 收藏 举报 题目:如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。请编写一个函数,输入两个字符串,求它们的最长公共子串,并打转载 2012-07-22 18:17:53 · 1059 阅读 · 0 评论 -
判断两个链表是否相交并找出交点
判断两个链表是否相交并找出交点2011-06-28 14:55 679人阅读 评论(0) 收藏 举报问题描述:一个比较经典的问题,判断两个链表是否相交,如果相交找出他们的交点。思路:1、碰到这个问题,第一印象是采用hash来判断,将两个链表的节点进行hash,然后判断出节点,这种想法当然是可以的。2、当然采用暴力的方法也是可以的,遍历两个链表,在遍历的过程中转载 2012-08-07 15:25:00 · 517 阅读 · 0 评论 -
括号匹配
C/C++ code#include stdio.h>#include stdlib.h>#include string.h>#include malloc.h>#define STACK_INIT_SIZE 100#define STACKINCREMENT 10 //存储空间分配增量#define OK 1#define ERROR 0#define OVERFLOW转载 2012-08-07 20:55:32 · 830 阅读 · 1 评论 -
扩展堆栈(stack) O(1) 时间访问栈中最小值(或最大值)
扩展堆栈(stack) O(1) 时间访问栈中最小值(或最大值)分类: C/C++ Data Structure2011-04-20 10:58 853人阅读 评论(0) 收藏 举报问题描述:扩展stack的实现,完成正常的push,pop操作,新增访问最小(或最大)元素的接口Min(),使得push,pop,Min的时间复杂度都是O(1)。问题分析:拿到这道题,我们最转载 2012-08-07 17:30:26 · 2297 阅读 · 0 评论 -
百度笔试题2:给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增
百度笔试题21.给定如下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增1 2 33 5 64 8 9现在要求设计一个算法, 给定一个数k 判断出k是否在这个矩阵中。 描述算法并且给出时间复杂度(不考虑载入矩阵的消耗)最好的算法是去矩阵的最右下角或最左上角的元素,该元素在所在列和行为鞍点,即行最大列最小或者列最大行最小。例如,转载 2012-08-07 20:15:17 · 6412 阅读 · 0 评论 -
倒排索引
倒排索引分类: 算法&架构设计2012-05-03 17:08 240人阅读 评论(0) 收藏 举报转自:http://blog.youkuaiyun.com/sunboy_2050/article/details/5658427简介 倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录转载 2012-08-12 21:03:59 · 751 阅读 · 0 评论 -
二叉树的三种遍历方法(递归和非递归)(转载)
二叉树的三种遍历方法(递归和非递归)(转载)分类: 数据结构与算法2011-03-10 17:24 120人阅读 评论(0) 收藏 举报[cpp:firstline[1]] view plaincopy#include #include //STL #include using namespace std;转载 2012-07-30 23:26:19 · 873 阅读 · 0 评论 -
倒排索引
倒排索引求助编辑百科名片 倒排索引倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file转载 2013-02-19 16:01:10 · 904 阅读 · 0 评论 -
倒排索引
倒排索引维基百科,自由的百科全书倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。有两种不同的反向索引形式:一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。一个单词的水平转载 2013-02-19 16:01:45 · 445 阅读 · 0 评论 -
倒排文件索引(Inverted File Index)的建立
倒排文件索引(Inverted File Index)的建立来源: 田野.mp3的日志目前主流的索引技术有三种:倒排文件、后缀数组和签名。后缀数组的方法虽然快,但是其维护困难,代价相当高,不适合做引擎的索引。签名是一种很好的索引方式,但倒排文件的速度和性能已经超过了签名。倒排文件是一种在各大搜索引擎中被主要使用的索引的方式,并且它也是搜索引擎中一个核心的技术。(1)转载 2013-02-19 16:04:05 · 743 阅读 · 0 评论 -
计算字符串的相似度
计算字符串的相似度分类: Algorithm2012-04-24 15:04 414人阅读 评论(0) 收藏 举报问题许多程序会大量使用字符串。对于不同的字符串,我们希望能够有办法判断其相似程度。我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为:1.修改一个字符(如把“a”替换为“b”)。2.增加一个字符(如把“abdd”变为“aebd转载 2013-02-19 16:38:00 · 397 阅读 · 0 评论 -
白话经典算法系列之七 堆与堆排序
白话经典算法系列之七 堆与堆排序分类: 白话经典算法系列2011-08-22 20:04 24158人阅读 评论(58) 收藏 举报堆算法白话经典算法数据结构堆排序目录(?)[+] 堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆转载 2013-02-19 16:48:26 · 390 阅读 · 0 评论 -
Bloom Filter概念和原理
Bloom Filter概念和原理焦萌 2007年1月27日 Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter转载 2013-02-19 17:26:31 · 343 阅读 · 0 评论 -
海量数据处理面试题集锦
海量数据处理面试题集锦分类: 22.Big Data Processing2011-08-14 14:07 43731人阅读 评论(75) 收藏 举报面试queryfilterurl算法存储目录(?)[+]十七道海量数据处理面试题与Bit-map详解作者:小桥流水,redfox66,July。转载 2013-02-19 18:22:35 · 483 阅读 · 0 评论 -
删除两个双向循环链表的相同节点
删除两个双向循环链表的相同节点分类: Data Structure 面试题集2011-09-23 12:37 1242人阅读 评论(1) 收藏 举报nulldeletestructsystemc 有两个双向循环链表A,B,知道其头指针为:pHeadA,pHeadB,请写一个函数将两链表中数值相同的节点删除。分析:(1) 首先把A中含有与B中相同的数据节点转载 2013-03-04 22:34:29 · 2984 阅读 · 0 评论 -
给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数
给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数分类: c/c++ 数据结构+算法2011-07-16 22:40 594人阅读 评论(0) 收藏 举报[cpp] view plaincopyprint?/* 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O转载 2013-03-04 22:46:32 · 1660 阅读 · 0 评论 -
程序员面试100题之七:最长公共子字符串
程序员面试100题之七:最长公共子字符串分类: 数据结构 C/C++2011-08-14 14:46 2320人阅读 评论(0) 收藏 举报面试systemcdeleteini扩展 子字符串的定义和子串的定义类似,但要求是连续分布在其他字符串中。比如输入两个字符串BDCABA和ABCBDAB的最长公共字符串有BD和AB,它们的长度都是2。转载 2013-03-04 21:49:20 · 600 阅读 · 0 评论 -
最大子段和——分治与动态规划
最大子段和——分治与动态规划问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1 例如,当(a1,a2,a3,a4,a4,a转载 2013-03-06 17:23:00 · 827 阅读 · 0 评论 -
微软、google、雅虎、百度等各大著名公司的经典面试题
微软十五道面试题1、有一个整数数组,请求出两两之差绝对值最小的值,记住,只要得出最小值即可,不需要求出是哪两个数。2、写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)3、给出一个函数来输出一个字符串的所有排列。4、请编写实现malloc()内存分配函数功能一样的代码。 给出一个函数来复制两个字符串A和B。转载 2013-03-06 17:55:59 · 928 阅读 · 0 评论 -
二叉树按层次遍历--队列实现
分类: 数据结构2011-11-12 21:55 2789人阅读 评论(1) 收藏 举报treestructnull数据结构n2算法 最近数据结构看的还真是恶心额,脑子不好使,算法写不来额····· 二叉树一大堆概念性的东西,不过还是写吧。二叉树(binary tree)二叉树的基本形态 二叉树也是递归定义的,其结点有左转载 2013-03-14 00:01:55 · 1150 阅读 · 0 评论 -
把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间
#include#includechar *Sort(char *str, int len){ if(str==NULL || len<=0 ) return NULL; char *start = str; int i = len - 1; int j = 0; int l = 0; for(; i>=0; i--原创 2013-03-13 17:27:31 · 2961 阅读 · 0 评论 -
统计一个二叉树的每一层 节点个数
#include#include#define MAX 100typedef struct TNode{ int data; TNode *left, *right;}TNode;typedef struct QNode{ TNode *tNode; QNode *next; int level;}QNode;typedef struct Q原创 2013-03-14 00:06:16 · 4489 阅读 · 0 评论 -
三、动态规划算法解最长公共子序列LCS问题(2011.12.13重写)
分类: 08.MS 100' one Keys 01.Algorithms(研究)2010-12-31 17:46 18406人阅读 评论(51) 收藏 举报算法zkcmatrix面试string目录(?)[+]动态规划算法解LCS问题 作者 July 二零一零年十二月三十一日本文参考:微转载 2013-03-17 20:51:38 · 824 阅读 · 0 评论 -
算法40(字符串的排列,给出一个函数来输出一个字符串的所有排列)
算法40(字符串的排列,给出一个函数来输出一个字符串的所有排列)2012-03-28 | 阅: 转: | 分享 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、ac转载 2013-03-18 00:09:47 · 1013 阅读 · 0 评论