红黑树

1 定义 红黑树也是一种平衡二叉树,和Avl树类似,它都可以动态的保持二叉树的平衡,即左右子树高度差不能太大,…


AVL树

1 定义 AVL树是 Adelson-Velskii 和Landis 这两个人发明,它是平衡二叉树的一种。平衡…


二分查找树-ADT

1 简介 二分查找树基于二分搜索算法,数据结构为二叉树查找方法。由于是树形结构可以动态的插入和删除元素。构建树…


希尔排序

1 原理 希尔排序是插入排序的一种变种,原理和插入排序一样,只是增加了gap(空隙),通过逐步缩小gap,进行…


选择排序

1 原理 选择排序虽然和快速排序较为相似,都是和一个基准值做比较,但选择排序没有利用分而治之的思想( divi…


快速排序

1 原理 快速排序也是利用了递归的思想,选择一个参照数(pivot 基准值),先从右侧寻找比基准小的数,找到则…


归并排序

1 原理 归并排序的原理和二分查找的原理类似,也是利用了分而治之的思想。先把所有的数组元素都分成两个一对,然后…


插入排序

1 目的 插入排序是基础排序中的一种,插入排序是从最常见的冒泡排序演变过来的,因此和冒泡排序的时间复杂度一致为…


二分查找

1 目的 二分查找是目前在目标数组有序的情况下,查找算法中时间复杂度最低的,可以达到NlogN. 2 实现 二…


Hash算法

1 目的 Hash算法是一种单向函数(One way function)。单向函数顾名思义,是一个不可逆的函数…