极客时间
Da_Bawang
我变强了 也变秃了
展开
-
冒泡排序、插入排序、选择排序
一、排序方法与复杂度归类 几种最经典、最常用的排序方法:冒泡排序、插入排序、选择排序、快速排序、归并排序、计数排序、基数排序、桶排序。 复杂度归类 冒泡排序、插入排序、选择排序 O(n^2) 快速排序、归并排序 O(nlogn) 计数排序、基数排序、桶排序 O(n) 二、如何分析一个“排序算法”? 算法的执行效率 最好、最坏、平均情况时间复杂度。 时间复杂度的系数、常数和低阶。 比较次数...原创 2018-11-04 09:19:51 · 133 阅读 · 0 评论 -
如何实现LRU淘汰缓冲算法
缓冲淘汰策略:指缓存被用满时清理数据的优先顺序 先进先出策略(FIFO:First in,First out) 最少使用策略(LFU:Least Frequently Used ) 最近最少使用策略(LRU:Least Recently Used) 链表:通过‘指针’将一组零散的内存块串联起来使用。适合插入、删除操作频繁的场景,查询时间复杂度较高。 链表分类 单链表 循环链表 双...原创 2018-11-04 09:21:27 · 261 阅读 · 0 评论 -
为什么很多编程语言中数组都从0开始编号
定义 数组(array)是一种线性表数据结构。用一组连续的内存空间,来存储一组具有相同类型的数据。 如何实现随机访问 线性表(数据排成像一条线一样的结构) 连续的内存空间和相同类型的数据 寻址公式 a[i]_address = base_address + i * date_type_size 容器的优势,eg:ArrayList 将数组的操作细节封装起来,支持动态扩容(...原创 2018-11-04 09:24:06 · 226 阅读 · 0 评论