目录
教你手撕排序,这里有一个概念就是稳定排序。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。并不是其算法复杂度的稳定,注意一下
算法(Algorithm) 代表着用系统的方法描述解决问题的策略机制,可以通过一定规范的 输入,在有限时间内获得所需要的 输出。
算法的好坏
一个算法的好坏是通过 时间复杂度 与 空间复杂度 来衡量的。就是代码需要的时间和内存,也就你时间成本和空间成本。其实这个一个动态的调整,到一定程度,往往就是用空间去换取时间,或者去时间去换取空间(dp其实就是在用空间去换取时间)。当然优秀的代码就是很优秀,排序也是这样,他们的目标都是把一堆数字进行排序。
常见时间复杂度的 “大O表示法” 描述有以下几种:
时间复杂度 非正式术语
O(1) 常数阶
O(n) 线性阶
O<