常用算法整理
总结项目开发中需要使用到的算法。
算法复杂度
时间复杂度一般使用O(大写)表示,O(x)其中x表示函数f()。
O(1)
表示复杂度不随数据增长影响。(比如数组根据下标随机访问、哈希表)
O(n)
表示数据增长n倍复杂度也增长n倍。(比如单链表查找)
O(logN)
表示数据增长n倍,复杂度增长logn倍,log以2为底。即当数据增加256倍时,复杂度增加8倍。(比如二叉树查找,二分法查找)
O(Nlog)
表示数据增长n倍,复杂度增长n的logn倍。即当数据增加256倍时,复杂度增加256*8倍。(归并排序)
排序算法
内部排序(使用内存)
插入排序
直接插入排序
希尔排序
选择排序
简单选择排序
堆排序
交换排序
冒泡排序
快速排序