算法
文章平均质量分 85
David_ShiWangwang
非典型程序员一枚。技艺不精,勤奋还行。
展开
-
【算法】LCS最长公共子序列
LCS—Longest Common Subsequence最长公共子序列。一个序列,如果是两个或多个已知序列的子序列,且是所有子序列中最长的,则为最长公共子序列。#include #include #include #define SIZE 100int main(){ char A[SIZE],B[SIZE]; int i,j,n; printf("输入字符串A:原创 2013-04-25 21:02:56 · 1235 阅读 · 0 评论 -
BST二叉查找树
BST(Binary Search Tree)二叉查找树满足的性质:设x为二叉查找树中的一个结点。如果y是x的左子树中的一个结点,则key[y]≤key[x]。如果y是x的右子树中的一个结点,则key[x]≤key[y]。根据上述性质,对一棵BST,可以通过中序遍历按序输出所有关键字。/*中序遍历*/INORDER_TREE_WALK(x)if x!= NULL t原创 2013-04-29 21:13:14 · 798 阅读 · 0 评论 -
桶排序
桶排序 桶排序的思想就是把区间[0,1)划分为n个相同大小的子区间,或称桶。然后,将n个输入输出分布到各个桶中去。因为输入树均匀且独立分布且在[0,1)上,所以一般不会有很多数落在一个桶里的情况。为得到结果,先对各个桶里的数进行排序,然后依次把各个桶中的元素列出来即可。本版本的桶排序是利用双链表实现。首先结构体定义如下:struct Barrel_Node{原创 2013-05-17 11:30:23 · 1125 阅读 · 0 评论 -
矩阵链乘法
用动态规划来解决矩阵链相乘的问题。 给定由n个要相乘的矩阵构成的序列(链)1,A2,A3,...,An>,要计算乘积 A1A2A3...An 为计算上面的乘积,可将两个矩阵相乘的标准算法作为一个子程序,根据括号给出的计算顺序做全部的矩阵乘法,一组矩阵的乘积是加全部括号的(fully parenthesized),如果它是原创 2013-05-03 21:37:08 · 2020 阅读 · 0 评论 -
红黑树的实现
一、旋转1.左旋第一步,将x的新右孩子确定,并指向。Left-Rotate(T,x)y = right[x]right[x] = left[y]第二步,如果之前确定的是非空,那么将它也指向x。if left[y] != NULL then parent[left[y]] = x第三步,将y的parent指向x的parent。parent原创 2014-03-14 15:47:22 · 734 阅读 · 0 评论