计数排序和基数排序
基于比较的排序的时间复杂度下界是O(nlogn),但是当要排序的元素具有一些特殊性质的时候,可以使用非比较的方法突破这种限制。 计数排序 当待排序的元素a[]都是位于区间[0,k]中的整数时,可以使用计数排序。计数排序顾名思义就是统计元素的
基于比较的排序的时间复杂度下界是O(nlogn),但是当要排序的元素具有一些特殊性质的时候,可以使用非比较的方法突破这种限制。 计数排序 当待排序的元素a[]都是位于区间[0,k]中的整数时,可以使用计数排序。计数排序顾名思义就是统计元素的
在排序的结果中,各个元素的次序依赖于他们之间的比较,这种排序算法叫做比较排序。基于比较的排序有O(n^2)的冒泡排序、插入排序等,也有O(nlogn)复杂度的归并排序、堆排序等。实际上,O(nlogn)在渐进意义上是最优的。 假设我们有n个
数据结构中的堆和程序语言中的堆的意义并不相同,这里的堆是一种数据结构。二叉堆可以分为最大堆和最小堆,这里介绍最大堆。在最大堆中,结点的值满足堆的性质:除了根节点外,所有结点都不会比它的父节点大。 可以看到,逻辑上的堆是二叉树,但堆的物理结构
比如我使用sqlite3数据库,用户安装应用时会创建db,用来存储一些个人的数据。 某一天我想给数据库增加一个表或者某张表增加列。 那么新的程序就要考虑:用户覆盖安装,全新安装的情况。 创建数据库就要if not exist Db1 cre
二次型起源于几何学中二次曲线方程和二次曲面方程化为标准形问题的研究,它是线性代数的重要内容之一,在一些其他数学分支以及其他学科中也有重要地位。 二次型 二次型的定义 定义:含有n个变量 \(x_1, x_2, …, x_n\)
特征值和特征向量是线性代数的主要内容之一,它们在物理学和统计学中都有很大的用处。另外还有一个小小的用处,求矩阵的m次幂。特征值和特征向量都是针对方阵来说的。 矩阵的相似 定义:设A与B都是n阶方阵,若存在一个可逆矩阵P,使得 $$B = P
齐次线性方程组 三种形式:方程组、矩阵、向量 下面是m个方程,n个未知数的方程组,右边全部是0. $$\left\{ \begin{array}{c} a_{11}x_1 + a_{12}x_2 + … + a_{1n}x_n
向量和向量空间理论是重要的数学工具。中学接触的向量是二维和三维的,在线性代数中我们把它扩充到n维。 向量的定义 定义:由数a1, a2, … , an组成的有序数组成为n维向量,简称向量。 向量通常用希腊字母\( \alpha
矩阵(Matrix),就是矩形的阵列,实际上是一个二维的表格。m*n个数按一定的顺序排成的m行n列的矩形数表,称为m*n矩阵,简称矩阵。 矩阵通常用大写字母表示: $$A = \begin{pmatrix} a_{11} & a_
本文是学堂在线计算几何课程 凸包一章的部分学习笔记。如果要求编程判断一个点是否在三角形(三个点)内部。 可以看出,如果点在三角形的内部,沿着三边走一圈,这个点相对于行进路径始终保持相同方向(图中一直在左边); 如果点在三角形的外部,沿着三条