
数据结构和算法
文章平均质量分 65
Panrison
新生代搬砖人
展开
-
二叉排序树
二叉排序树一. 定义二叉排序树(Binary Sort Tree),又称为二叉查找树。它或者是一棵空树,或者是具有下列性质的二叉树。1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值。2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值。3. 它的左、右子树也分别为二叉排序树。从二叉排序树的定义可以知道,它前提是二叉树,然后它采用了递归的定义方法,再者,它的结点间满足一定的次序关系,左子树结点一定比其双亲结点小,右子树结点一定比其双亲结点大。构造一棵二叉排序树的目转载 2021-09-24 10:30:16 · 2336 阅读 · 0 评论 -
KMP模式匹配算法
KPM模式匹配算法一.什么是KPM说到KMP,先说一下KMP这个名字是怎么来的,为什么叫做KMP呢。因为是由这三位学者发明的:Knuth,Morris和Pratt,所以取了三位学者名字的首字母。所以叫做KMP二.KMP有什么用KMP主要应用在字符串匹配上。主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。所以如何记录已经匹配的文本内容,是KMP的重点,也是next数组肩负的重任。其实KMP的代码不好理解,一些同学甚至直接把KMP代码的模板转载 2021-09-10 11:11:24 · 1490 阅读 · 0 评论 -
常用的排序算法 (C++实现)
常用的排序算法#include<iostream>using namespace std;/* 1.直接插入排序 (稳定) 平均时间复杂度:O(n^2);最好时间复杂度:O(n);最坏时间复杂度:O(n^2) 辅助空间:O(1) 最坏的比较次数:n(n-1)/2 ;最好比较次数:n-1*/template<class Elemtype>void StraightinsertionSort(Elemtype elem[], int n){ for原创 2021-09-02 20:03:37 · 140 阅读 · 0 评论