Math 排序
Math 排序
稳定性
当待排序数据中有相等的元素, 并且排序后相等的元素次序没有改变, 就说这个排序是稳定的.
稳定排序
冒泡排序
插入排序
归并排序
基数排序
不稳定排序
选择排序
快速排序
希尔排序
堆排序
内排序
冒泡排序 O(n^2)
选择排序 O(n^2)
插入排序 O(n^2)
希尔排序 O(n^1.5)
快速排序 O(NlogN)
归并排序 O(NlogN)
堆排序 O(N*logN)
基数排序 O(d(n+r))
冒泡排序(BubbleSort)
基本思想:两个数比较大小,较大的数下沉,较小的数冒起来。
过程:
1. 比较相邻的两个数据,如果第二个数小,就交换位置。
2. 从后向前两两比较,一直到比较最前两个数据。最终最小数被交换...
Math Hash算法
Math Hash算法
Hash算法: 把任意长度的输入通过Hash算法变换成固定长度的输出.
Hash冲突: 多个输入通过Hash算法得到同一个Hash值.
Hash table(ht): Hash列表, 一般使用顺序表存储
Hash table length(htlen): Hash列表长度
Hash slot: Hash槽, 表示ht中的一个位置
Hash loadFactor: 装填多少进行括容, java中默认0.75
Hash函数
1. 除余法
// htlen 为Hash列表长度
hash(key) = key mod htlen
2. 乘余取整法
// 先让关键码key乘上一个常数A (0< A < 1),提取乘积的小数部分。
// 然后...
Xcode 优化问题
Xcode优化问题(XXX was compiled with optimization - stepping may behave oddly; variables may not be available.)
Xcode 11.5 使用Release 编译项目, 并且Debug, 一些参数都是nil, 并且Log里提示
was compiled with optimization - stepping may behave oddly; variables may
not be available
这是因为Xcode会优化代码, Debug时会看起来很奇怪. 最直接的办法是把编译模式改成DEBUG
还有就是关掉各个地方的编译优化选项(不推荐, 选项太多, 漏一个就是麻烦...
Math 动态规划
Math 动态规划
动态规划(Dynamic programming,简称DP), 把主问题分为子问题, 主问题可以通过子问题
求得.
特性
重叠子问题: 有些子问题的解会被引用多次, 因此需要保存子问题的解.
最优子结构: 最优解肯定是有最优的子解转移推导而来.
无后效性 : 子问题的解并不会由后面其他问题的解而改变
步骤
划分状态: 确认子问题
状态表示: 保存子问题的解
状态转移: 怎么由子问题推导出父问题
确定边界: 确定初始状态是什么?最小的子问题?最终状态又是什么
方向
自底向上,简单来说就是根据初始状态,逐步推导到最终状态,而这个转移的过程,必定是一个拓扑序
自顶向下,也就是从最终状态出发,如果遇到一个子...
Lang C语言指针
Lang C语言指针
pointer and array
不同点
int[][] vs int**
C语言中多维数组也是使用顺序地址存储, 地址从低到高排列
int a[2][2] = \{\{1, 2\}, \{3, 4\}\};
// 内存地址 低地址位 1, 2, 3, 4 高地址位
a是一个指针, 保存值为’1’的地址; a[0]是一个指针, 也是保存值为’1’的地址.
因此a = a[0]
int** 是一个指针x, 指向另一个指针y, y指向int类型.
如果int** p = (int**) a; 这样作的话, *p 等于 1, 而**p会把1当作地址作取值操作,
因此会报错. int** 不等价于 a[][] .
需要创建指...
Compute Media 视频直播
Compute Media 视频直播
RSVP
RTP
RTCP
MMS
RTSP
MIME
RTMP
RTMFP
HLS
WebRTC
HLS
HDS
DASH
RTSP
RTMP
Reference
Compute Media 视频原理
Compute Media 视频原理
图像
三原色: RGB
屏幕显示原理: TV CRT; PC CRT; XO-1 LCD; LCD
屏幕由像素点排列组成, 像素由3个发光子像素点组成
图像的数值表示
RGB表示方式
浮点表示: 0.0~1.0
整数表示: 0~255或者00~FF, RGBA_8888 RGB_565
RGBA_8888 1280x720计算图像大小: 1280 * 720 * 4 = 3.516MB
位图(bitmap)在内存中所占用的大小
YUV表示方式
视频帧裸数据一般使用YUV表示
Y: Luma, 灰阶值
U, V: Chroma, 色度, 分为Cr(色调)和Cb(饱和度)
Cr: RGB输入信号红色部分与RGB信号亮度值之间的...
Compute Media 音频原理
Compute Media 音频原理
声学原理
声音是波, 介质振动产生声音, 不同介质, 传播速度和波形不一样.
频率(f): 越高, 波长就越短, 代表音阶
振幅(A): 指振动的物理量可能达到的最大值, 代表声音的响度, 能量大小的反映
波形: 表示信号的形状, 代表声音的音色, 本质是谐波
传播速度(V): 声音在介质中移动的速度
波长(λ): 沿着波的传播方向,相邻两个振动位相相差2π的点之间的距离
波的周期(T): 完成一次振动需要的时间
相位: 特定的时刻在它循环中的位置, 描述信号波形变化的度量
f = 1/T
f = V/λ
λ = uT
声压(pa): 声压就是大气压受到声波扰动后产生的变化,即为大气压强的余压,它相当于在大气压强上的叠加一个声波扰动引起...
453 post articles, 57 pages.