# 时间复杂度和空间复杂度
在计算机科学中,算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。当 n 很大时,公式中的低阶、常量、系数不能左右增长趋势,都可以忽略。
在计算机科学中,算法的时间复杂度(Time complexity)是一个函数,它定性描述该算法的运行时间。当 n 很大时,公式中的低阶、常量、系数不能左右增长趋势,都可以忽略。
发布订阅与观察者是经常被混淆的两种模式
正则表达式(Regular Expression),是一个定义搜索模式(pattern)的序列字符串。该模式经常用作搜索,替代字符串以及验证输入的正确性。
堆排序可以分成两步,一:将给定的数组建立成堆。 二:不断的移除根节点,然后重组堆。并移除的根节点插入到数组中。
快速排序采用了分治法的思想。快速排序先把大数组划分成两个数组,使得一边的数组关键字均大于另一边的数组关键字。然后分别对两个数组关键字递归排序。
归并排序采用了分治法的思想。归并排序就是将序列中前后相邻的两个有序序列归并为一个有序序列。
希尔排序,也可以叫“缩小增量排序”,可以看作插入排序的概括。
选择排序就是构建有序序列,对于未排序的下一个位置,在未排序序列中从前往后扫描,选择合适的元素。
插入排序就是构建有序序列,对于未排序的下一个数据,在已排序序列中从后往前扫描,找到合适的位置插入。
冒泡排序就是将数列中第一个关键字和第二个关键字比较,若为逆序,则交换两个关键字,继续比较第二个,第三个关键字,重复直到最后一个。这样子,数列中最大值就位于最后的位置。然后开始第二轮比较,直到 N-1 的位置。一直循环比较 N 轮,直到数列中所有的记录都排序好。冒泡排序总是从左往右遍历,并选择最大的关键字放在最左边。
关于查找算法。
前缀表达式,也叫波兰表达式(PN)。其特点是操作符置于操作数的前面。中缀表达式,操作符是以中缀的形式处于操作数的中间。中缀表达式中的括号是必需的。后缀表达式,也叫逆波兰表达式(RPN)。所有的操作符置于操作数的后面。
图是一种非线性结构,是一组有限个顶点(vertices)和一组连接顶点的边(edges)的集合。
堆(Heap)是一种特殊的树形结构,也叫二分堆(Binary Heap)。
由于二叉树的内容比较多,故分开来记录。