数据结构和算法
礼彬fly
这个作者很懒,什么都没留下…
展开
-
二叉树一些基本算法
二叉树存储结构及先序建立-----二叉树的存储结构-----typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;-----先序建立二叉链表-----Status CreateBiTree(BiTree &T){ cha原创 2014-10-16 19:41:22 · 1106 阅读 · 0 评论 -
FP-Tree算法的实现
FP-Tree算法的实现在关联规则挖掘领域最经典的算法法是Apriori,其致命的缺点是需要多次扫描事务数据库。于是人们提出了各种裁剪(prune)数据集的方法以减少I/O开支,韩嘉炜老师的FP-Tree算法就是其中非常高效的一种。支持度和置信度严格地说Apriori和FP-Tree都是寻找频繁项集的算法,频繁项集就是所谓的“支持度”比较高的项集,下面解释一下支持度和置转载 2015-07-07 01:29:41 · 1450 阅读 · 0 评论 -
各种排序算法的分析及java实现
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、交换排序:冒泡排序、快速排序。 (4)、归并排序 (5)、基数排转载 2015-11-27 09:56:04 · 880 阅读 · 0 评论 -
1、单链表--Java操作
单链表Java操作:package algorithm.array_linked;import java.util.Stack;/** * 链表简单操作 * @author baolibin * 1、Linked_01 构造方法 * 2、addEle 头部增加节点 * 3、addEnd 尾部增加节点 * 4、deleteLinked 删除指定节点 * 5、upda原创 2016-08-23 00:48:25 · 871 阅读 · 0 评论 -
2、二叉树--Java操作
二叉树操作,Java版本二叉树例子图:package algorithm.tree;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * 二叉树 */public class _01_binaryTree { public static void mai原创 2016-08-24 21:16:43 · 878 阅读 · 0 评论 -
5、字符串全排列--Java代码
字符串全排列,java代码:package algorithm.basic;/** * 全排列 * @author baolibin */public class _05_Permutation { public static void main(String[] args) { //String str="abcde"; String str1="ada";原创 2016-08-25 18:25:15 · 555 阅读 · 0 评论 -
4、最长递增子序列LIS--Java代码
求最长递增子序列,并打印所有最长子序列,直接贴代码:package algorithm.basic;import java.util.ArrayList;import java.util.List;/** * LIS:最长递增子序列 * @author baolibin */public class _04_LIS { public static void main(Str原创 2016-08-25 13:16:10 · 1105 阅读 · 0 评论 -
7、KMP算法实现--Java代码
KMP算法: 字符串查找问题给定文本串和模式串,从文本串中找出模式串第一次出现的位置。文本串长度N,模式串长度M: KMP算法的时间复杂度为O(M+N),空间复杂度为O(M)。算法程序Java代码:很多理解写在注释里面了,这里不再累赘,直接看代码和注释就可以了。package algorithm.basic;/** * KMP算法原创 2016-08-26 15:24:59 · 999 阅读 · 0 评论 -
3、最长公共子序列LCS--Java代码
直接上代码:package algorithm.basic;/** * 最长公共子序列 * @author baolibin * 用动态规划解决LCS */public class _03_LCS { public static void main(String[] args) { String str1="sdebyjkdslsdgrteyb"; //测试一原创 2016-08-24 23:54:24 · 738 阅读 · 0 评论 -
【经典算法】——KMP,深入讲解next数组的求解
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留言。转载 2015-05-18 16:37:03 · 717 阅读 · 0 评论 -
八大排序算法
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。 快速排序:是目前基于比较的内部排序中被认为是最好的方法,转载 2015-05-30 20:48:18 · 577 阅读 · 0 评论 -
TF-IDF及其算法
TF-IDF及其算法 概念 TF-IDF(term frequency–inverse document frequency)是一种用于资讯检索与资讯探勘的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。TF-IDF加权转载 2015-05-30 22:55:28 · 1024 阅读 · 0 评论 -
图的深度优先遍历-C语言实现
#include#include#include#include#define MAXLIN 40/*----邻接表存储结构---*///-----------------表节点存储结构----------typedef struct ArcNode{ //结构体 int a原创 2014-10-16 18:41:11 · 35526 阅读 · 5 评论 -
数据结构课设-约瑟夫换C语言实现
问题描述:#include#include#includetypedef struct Node{ int num; struct Node *next;}Node,*LinkList;/*构造人链表*/void InitRing(int n,LinkList &R){ LinkList p,q; p=R;原创 2014-10-16 19:19:07 · 1708 阅读 · 0 评论 -
数据结构课设-弗洛伊德算法C语言实现
#include#include#include#define INFINITY 65535 //无穷#define MAXLIN 10typedef struct Ver{ //顶点向量 char dian[5];}Ver;typedef struct MGraph{ Ver vexs[MAXLIN];原创 2014-10-16 12:43:19 · 3432 阅读 · 1 评论 -
数据结构课设-学生管理系统C语言
我在大二上学期期末时候写的,大概2014年1月5号左右。我写在博客里一是为我以后复习所用,二是希望对需要的人有所帮助。原创 2014-10-16 19:24:12 · 8142 阅读 · 0 评论 -
ACM算法相关资料
ACM算法相关资料一:知识点数据结构:1,单,双链表及循环链表2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等)3,文件操作(从文本文件中读入数据并输出到文本文 件中)4,图(基本概念,存储结构,图的运算)数学知识1,离散数学知识的应用(如排列组合、简单的图论,数理逻辑)2,数论知识3,线性代数4,组合转载 2014-09-26 18:27:05 · 1990 阅读 · 1 评论 -
五大常用算法:分治、动态规划、贪心、回溯和分支界定
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2015-01-27 20:14:42 · 938 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解
程序员必须知道的10大基础实用算法及其讲解算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分转载 2015-01-30 00:25:20 · 1169 阅读 · 0 评论 -
四种聚类方法之比较
聚类分析是一种重要的人类行为,早在孩提时代,一个人就通过不断改进下意识中的聚类模式来学会如何区分猫狗、动物植物。目前在许多领域都得到了广泛的研究和成功的应用,如用于模式识别、数据分析、图像处理、市场研究、客户分割、Web文档分类等[1]。 聚类就是按照某个特定标准(如距离准则)把一个数据集分割成不同的类或簇,使得同一个簇内的数据对象的相似性尽可能大,同时不在同一个簇中的数据对象的差异性也尽可能转载 2015-05-29 00:19:41 · 1238 阅读 · 0 评论 -
6、八大内部排序--Java代码
八大内部排序:一、直接插入排序:/** * 插入排序之直接插入排序 * @author baolibin */public class _04_insertSort { public static void main(String[] args) { int[] tmpNum={54,23,8,87,56,21,34,17,6,23,4};原创 2016-08-25 22:57:07 · 693 阅读 · 1 评论