红黑树原理
摘要:红黑树原理 (个人版以后再出) 网上教程比较详细: 【1】https://my.oschina.net/u/3272058/blog/1914452(推荐优先阅读此篇,通俗易懂) 【2】https://www.jianshu.com/p/5653b8469b0d
阅读全文
平衡二叉树的遍历/删除/新增/维护平衡因子
摘要:LL/LR/RR/RL旋转方式见链接 Reference [1] https://www.cnblogs.com/sfencs-hcy/p/10356467.html
阅读全文
二分查找算法(加法方式:斐波那契查找)
摘要:二分查找算法比较熟悉的是折半查找,但是折半查找中计算mid时,有加法和除法。下面介绍仅有加法方式的二分查找算法 核心思想利用斐波那契表达式来实现加法方式的折半查找 技巧点:1)将数组中数的个数(f(n)-1)分成 f(n-1) -1和 f(n-2)2):f(n) - 1 = (f(n-1)-1 )+
阅读全文
成对的字符串
摘要:Description 有些字符串,如果满足下面的性质,则称为成对的字符串:a. 所有的字符在字符串中出现偶数次b. 每一对相同的字符之间不会有出现奇数次的字符现在给你一些字符串,请判断这些字符串是否为成对的字符串。 输入: 第一行是一个整数K,表示有多少个测试用例,以后每行一个测试用例。每行为一个
阅读全文
C++中 容易忽视的const 修饰符
摘要:C++可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的有点: (1)const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型安全检查,而后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误!(如类型不匹配问题) (2)编
阅读全文
Factstone Benchmark
摘要:【问题描述】 Amtel已经宣布,到2010年,它将发行128位计算机芯片;到2020年,它将发行256位计算机;等等,Amtel坚持每持续十年将其字大小翻一番的战略。(Amtel于2000年发行了64位计算机,在1990年发行了32位计算机,在1980年发行了16位计算机,在1970年发行了8位计
阅读全文
八皇后问题算法
摘要:在国际象棋棋盘上(8*8)放置八个皇后,使得任意两个皇后之间不能在同一行,同一列,也不能位于同于对角线上。问共有多少种不同的方法,并且指出各种不同的放法 1 int WeiZhi[8];//记录皇后所在位置 2 3 void EightQueen(int n){ 4 int i,j; 5 int c
阅读全文
LZW压缩算法
摘要:转载自http://www.cnblogs.com/jillzhang/archive/2006/11/06/551298.html 记录此处仅自己供学习之用 lzw解压缩算法: 用单个字符初始化字符串表 OLD_CODE =第一个输入代码 输出 OLD_CODE所代表的字符 WHILE 输入流中还
阅读全文
算法分析之马走日字
摘要:国际象棋的棋盘为8*8的方格棋盘。现将"马"放在任意指定的方格中,按照"马"走棋的规则将"马"进行移动。要求每个方格只能进入一次,最终使得"马"走遍棋盘的64个方格。编写一个C程序,实现马踏棋盘操作,要求用1~64这64个数字标注马移动的路径,也就是按照求出的行走路线,将数字1,2,……64依次填入
阅读全文
算法分析之常胜将军
摘要:常胜将军是一个非常有意思的智力游戏趣题,常胜将军的大意如下: 甲和乙两人玩抽取火柴的游戏,共有21根火柴。每个人每次最多取4根火柴,最少取1根火柴。如果某个人取到最后一根火柴则输了。甲让乙先抽取,结果每次都是甲赢。 先来分析'下常胜将军问题。甲要每次都赢,那么每次甲给乙只剩下1根火柴,因为此时乙至少
阅读全文
算法分析之三色旗算法
摘要:一条绳子挂红白蓝三种颜色的旗子,且排列无序,现用程序把三种旗子同色归类,顺序为蓝-白-红,每次只能交换2面旗子,采用最少步骤完成。 算法描述:只需把红色和蓝色的旗子进行交换,红旗和篮旗都就位后,白旗自然就位。 1) 如果白旗所在位置的元素是白旗,表示该位置的元素应该在此,将white++,接着处理下
阅读全文
结构体的定义、应用------结构体中的一些问题
摘要:typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于: 若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n; 若用typedef,可以这样写,typedef struct nod...
阅读全文
随机数产生方法
摘要:随机数产生方法1、调用系统的随机种子。 1 /* 2 * 调用系统的时间随机种子数,产生随机数(0-32767) 3 * srand(time(0))为调用系统伪随机种子函数,用来初始化随机数发生器的随机种子 4 */ 5 void srandRandom(){ 6 int i; 7 ...
阅读全文
多项式求值
摘要:多项式求值一、一维多项式求值:P(x)=3x^6+7x^5+3x^4+3x^3+8x^2+5x+23一个通用的计算多项式的值的算法可以采用递推的方式。首先可以将上面多项式变形为如下的等价方式:P(x)=(...((an-1x+an-2)x+an-3)x+...+a1)x+a0通过以上表达式可以看出,...
阅读全文
方程的求解
摘要:方程的求解一、非线性方程的求解1、牛顿迭代法。牛顿迭代法的思想是根据函数f(x)的泰勒基数的前几项来寻找方程的根。牛顿迭代法具有平方收敛的速度。f(x)=f(x0)+f'(x0)(x-x0)+...(泰勒公式展开式)根据泰勒公式展开式的前两项有:f(x)=f(x0)+f'(x0)(x-x0)=0如果...
阅读全文
矩阵运算
摘要:矩阵运算注意的细节1:二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中,而不是象一维数组只是一个向量。但是,实际的硬件存储器却是连续编址的,也就是说存储器单元是按一维线性排列的。如何在一维存储器中存放二维数组,可有两种方式:一种是按行排列, 即放完一行...
阅读全文
算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
摘要:每次开始动手写算法,都是先把插入排序,冒泡排序写一遍,十次有九次是重复的,所以这次下定决心,将所有常规的排序算法写了一遍,以便日后熟悉。以下代码总用一个main函数和一个自定义的CommonFunction函数CommonFunction函数中定义了一个交换函数和一个输出函数: 1 /* 2 ...
阅读全文
背包问题
摘要:因为还没有编写代码,没有检验自己有没有完全理解,所以先转载下,以后可以查看0/1背包问题:http://blog.sina.com.cn/s/blog_ad64b82001014xbl.html(转载)http://blog.csdn.net/bruce_zeng/article/details/8...
阅读全文
大数乘法
摘要:大数乘法,注意注释部分: 1 #include 2 3 void multiple(char a[],char b[],char c[]){ 4 int temp,in=0,lenA=0,lenB=0,index,start; 5 while(a[++lenA]!='\0');//...
阅读全文
遍历迷宫
摘要:走迷宫 1 #include 2 #define MAXSIZE 15 3 char point[MAXSIZE][MAXSIZE]={ 4 {'X','X','X','X','X','X','X','X','X','X','X','X','X','X','X'}, 5 {' ','o','o',...
阅读全文