摘要:
二叉搜索树 注意:本文的算法和代码思路大部分来自《算法导论》 什么是二叉搜索树 二叉搜索树首先是一棵二叉树,此外,它还能用来搜索。因为它满足这样的性质:每个结点的左子树的结点值都比自身小,而它的右子树的结点值都比自身大。 它长得像下面这样:(依据创建时结点插入顺序不同,可能是完全二叉,也可能不是) 阅读全文
摘要:
堆排序 堆 (二叉)堆是一种具有特殊性质的二叉树。要么所有结点都大于它的左右孩子结点,要么所有结点都小于它的左右孩子结点。前者被称为大根堆,后者被称为小根堆。如图: 从上到下,左到右编号序号后,我们可以用一个数组来表示这种结构(箭头指向的是孩子结点),即: 如果从0开始编号的话,可以发现,如果一个结 阅读全文
摘要:
代码: #include<iostream> #include<string> #include<fstream> #include<vector> #include<algorithm> #include<cstdlib> #include<ctime> using namespace std; 阅读全文
摘要:
一个非常简单的中缀表达式转后缀表达式 输入: 一个中缀算术表达式,操作数限定为0~9,运算法则限定为+、 、 、/。 输出: 一个后缀(逆波兰式)算术表达式 例子: 输入 :1+(9 3) 3 输出 :1 9 3 3 + 阅读全文
摘要:
排序算法总结(未完待续) 排序算法分类 冒泡排序 核心思想 :通过把数组中相邻的两个逆序元素交换来不断减少数组中的逆序,直到全部有序 算法描述 : 1. 从当第一个元素开始,和第二个元素比较,如果逆序,则交换 2. 依次往后比较每一对元素,如果逆序则交换,直到最后,最大(最小)的元素会排到末尾 3. 阅读全文
摘要:
插值法 什么是插值 插值是一种古老的数学方法,早在1000多年前我国学者在研究历法时就应用了线性插值和抛物插值,到了17—19世纪,为了解决航海和天文观测中的一些实际问题,Newton,Lagrange,和Hermite等数学家较系统的研究了插值法。 简单的说,插值就是通过离散的数据点,去求一条经过 阅读全文
摘要:
题目描述 我们要求找出具有下列性质数的个数(包含输入的自然数nn): 先输入一个自然数$n(n using namespace std; int count(int n) { static int counter = 1; static int memory[500] = { 0 }; if (n 阅读全文
摘要:
最小二乘法原理与编程实现 背景 数据与数据(变量与变量)之间,很多时候是存在一些关系的,如线性关系和非线性关系。我们常常会希望找到数据之间的关系,用一个函数(或者一条曲线)去描述两个变量之间的关系。 然而因为各种原因,测量得到的数据是会存在误差的,于是我们要一种方法去减少误差带来的干扰,尽可能的描绘 阅读全文
摘要:
网页排名算法PageRank PageRank,网页排名,又叫做网页级别。是一种利用网页之间的超链接数据进行计算的方法。它是由Google的两位创始人提出的。 对于用户而言,网页排名一般是比较主观的,但也存在一些方法可以给出较为客观的排名,PageRank就是其中一种。它衡量的是网页之间的相对重要性 阅读全文
摘要:
c++在传参的过程中,指针( )和指针引用( &)是有区别的。 虽然,我们往往可以通过传指针然后通过间址访问来修改指针所指向对象的值,同样,通过引用也可以直接修改对象的值。 但是,当传指针的时候有一个问题,就是,我们虽然可以通过指针来修改指针所指向对象的值,但是我们没有不能直接修改指针的内容(也就是 阅读全文