随笔分类 - 数据结构&算法
摘要:http://www.ruanyifeng.com http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_reddit.html http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_stack_overflow.html http://www.ruanyifeng.com/blog/2012/03/ranking_alg...
阅读全文
摘要:淘宝搜索技术博客 http://www.searchtb.com/2010/12/random-algorithm.html 本文内容 随机选取数据 随机数的计算 总结 细看这篇文章,有点惊讶,没想到一个随机数,有这么多需要思考的东西。 在日常工作中,经常需要使用随机算法。比如面对大量的数据, 需要从其中随机选取一些数据来做分析。 又如在得到某个分数...
阅读全文
摘要:本文内容 环境 链式二叉树节点 链式二叉树是否相同 测试 本文主要描述判断两个链式二叉树是否相同,所谓相同,结构要相同,节点的值也要相同。 环境 codeblock 12.11 Windows 7 旗舰版 64位 链式二叉树节点 typedef struct BiTreeNode *BiTreeP...
阅读全文
摘要:本文内容 环境 基本结构 basic.h 文件 链式二叉树 bitree.h 文件 链式二叉树 bitree.c 文件 测试 本文主要是创建一棵链式二叉树,有两种方法:一是手动,输入树节点;二是通过一个数组,毕竟要是测试什么算法的话,总得有一棵树。 环境 codeblock 12.11 Windows 7 旗舰版 64位 ...
阅读全文
摘要:本文内容 环境 基本结构 basic.h 顺序二叉树 sqbitreee.h 文件 顺序二叉树 sqbitreee.c 文件 测试 本文主要是创建一个棵顺序二叉树,毕竟要是想测试什么算法的话,总得有一棵才行。 环境 codeblock 12.11 Windows 7 旗舰版 64位 基本结构 basic.h ...
阅读全文
摘要:原文地址:http://stblog.baidu-tech.com/?p=1846 本文来自“百度搜索研发部官方博客”,也不知道是真是假,文笔写得差了点,公式都说不明白,废话一堆一堆的。 本文内容 引言 向量空间模型 基于 hash 方法的相似计算 基于主题的相似度计算 总结 参考文献 1 引言 相...
阅读全文
摘要:一般情况,我们遇到真正的算法问题,似乎并不多,大都是检索、增删改之类的操作和功能点,只要对语言,如 JavaScript 和 C# 或 Java 特性足够了解,都很容易解决。但若是遇到真正的算法问题,足够让人想两三天的。此时,就是体现你价值的地方啦…… 其实,本文内容并不新鲜,只是重新整合后,会呈现出不同的意义。通过两个计算,展示程序员不能忽视算法方面的知识,如何利用分治法、动态规划、贪心算法等...
阅读全文
摘要:本文内容 分治策略 分治步骤 从合并排序看“分治策略” 分治策略 分治法(divide-and-conquer),“分治法策略”是一种很重要的算法。顾名思义,“分而治之”。将原问题划分成 n 个规模较小,而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题的解。 “分治策略”是很多高效算法的基础,如快速排序、归并排序、傅立叶变换(快速傅立叶变换)。 分治步骤 分解(Divide):将原问题分解成一系列子问题; 解决(Conquer):递归地解各个子问题。若子问题足够小,则直接求解; 合并(Com...
阅读全文
摘要:本文内容 概述 从 Fibonacci 数列看“动态规划”思想 动态规划基础 动态规划步骤 动态规划意义 动态规划应用 备注 概述 在数据结构中,最经典的算法/问题是:Floyd 算法(最短路径)、哈夫曼编码和 Fibonacci(斐波那契数列),背包问题等等。但当时,这些经典仅仅是描述了一个问题的解决方法,没有对整个这类问...
阅读全文
摘要:本文内容 冒泡排序 运行过程 冒泡排序 #include <stdio.h> #define N 10 #define LT(a,b) ((a)<(b)) #define TRUE 1 #define FALSE 0 typedef int Status; typedef int ElementT...
阅读全文
摘要:本文内容 通用数据结构 简单选择排序 归并排序 Main 函数 运行结果 本文用 CodeBlocks 编写。同时也提供 VS C 和 VS C# 代码。 通用数据结构 MyElement.h #ifndef MYELEMENT_H_INCLUDED #define MYELEMENT_H_INCLUD...
阅读全文
摘要:本文内容 通用数据结构 直接插入排序 冒泡排序 Main 函数 运行结果 本文用 CodeBlock 编写。同时也提供 VS C 和 VS C# 代码。 通用数据结构 MyElement.h #ifndef MYELEMENT_H_INCLUDED #define MYELEMENT_H_INCLUDE...
阅读全文
摘要:本文内容 初始化双向链表-创建头节点 创建双向链表 销毁双向链表 双向链表长度 按值检索双向链表 按索引检索双向链表 插入双向链表 删除双向链表 合并双向链表 输出双向链表 dulist.h 声明文件 #ifndef _DuList_H #define _DuList_H struct DuLNode; typedef struct DuLNode *duLinkList; typedef duLinkList DuLinkList; typedef duLin...
阅读全文
摘要:本文内容 初始化单链表-带头节点 自动创建单链表-逆序 自动创建单链表-顺序 手动创建单链表-输入 自动创建单链表-数组 创建交叉的单链表 创建带环的单链表 将一般的单链表转换成循环单链表 将循环单链表转换成一般的单链表 销毁单链表 单链表长度 带环的单链表长度 在单链表第i个位置插入元素e 删除单链表第i个元素 合并单链表 单链表置逆 单链表排序 单链表是否包含环 单链表是否为循环单链表 获得单链表第i个节点元素 获得...
阅读全文