数据结构05-二叉排序树 一、二叉排序树的介绍 二叉排序树 或者是一颗空树,或者是一颗具有如下性质的树: 若左子树不为空,那么左子树上面的所有节点的关键字值都比根节点的关键字值小; 若右子树不为空,那么右子树上面的所有节…
分类:数据结构
基本算法——二分查找算法
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 1.条件 (1)必须采用顺序存储结…
数据结构(九):简单选择排序
通过 n-i 次元素之间的比较,从 n-i+1 个元素中选出值最小的元素,和第 i 个元素交换 (从数组中选出最小值元素与最左元素进行交换位置) 简单选择排序例子 举例: 假设数组如下 5 2 8 4 9 1 第一趟排序…
lower_bound()函数和upper_bound()函数,以及二分查找
参考C++ Refference: http://www.cplusplus.com/reference/algorithm/lower_bound/ 本文前面是函数原型, 后面是怎么用 lower_bound(): 默…
《数据结构与算法之美》-数组
《数据结构和算法之美》专题陆陆续续看了好几篇了,看到数组这篇了。刚看的时候心想着数组这东西基本都会用,还能讲出花来?看完后发现我还是有蛮大收获的,下面大概总结下。 数组是再寻常不过的数据结构了,几乎所有的编程语言应该都有…
基本算法——快速排序算法
快速排序算法是对冒泡算法的改进。所以我们首先来简单的谈谈冒泡算法。 1.冒泡算法 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重…
BZOJ-2877: [Noi2012]魔幻棋盘(线段树)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2877 嗯,这次好好写一次题解吧,这题傻叉的写了半天QAQ : 首先,由欧几里德算法,我们知道gcd(a,b)=gc…
C++二分图代码实现
#include <iostream> #include <cstdio> #include <vector> using namespace std; #define MAX 100…
BZOJ-2186: [Sdoi2008]沙拉公主的困惑(欧拉函数+乘法逆元)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2186 由于(a+b,b)=(a,b),所以答案就是phi(m!)*n!/m!,然后化简之后上乘法逆元。 (第一次写…
BZOJ-1027: [JSOI2007]合金(最小环)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1027 额。。。计算几何太弱了,这题搞了N久才A掉,就是用最小环求一下最小的凸包,然后记得要特判一下所有点都在一个点…
Java 面试宝典
基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什…
链表排序
链表适合插入和删除,不适合检索,尤其是单向链表中寻找节点的父节点。 快排:可参考快排常见的三种策略。除了插入策略之外,都不太适合链表,因为需要寻找父节点。 堆排序:堆排序似乎没有大的问题,但是空间复杂度N。 归并排序:归…