读书笔记-漫画算法

第一章 算法概述

1.数据结构就好比舞台,算法就是舞台上的舞者。
2.衡量算法两大标准:
时间复杂度、空间复杂度
常见时间复杂度:
O ( 1 ) < O ( l o g n ) < O ( n ) < O ( n l o g n ) < O ( n 2 ) O(1)<O(logn)<O(n)<O(nlogn)<O(n^2) O(1)<O(logn)<O(n)<O(nlogn)<O(n2)
常见空间复杂度:
O ( 1 ) < O ( n ) < O ( n 2 ) O(1)<O(n)<O(n^2) O(1)<O(n)<O(n2)
绝大多数情况下,时间复杂度越小越好。

第二章 数据结构基础

1.

逻辑结构线性结构(数组、链表、栈、队列,散列表)非线性结构(树、堆、图)
物理结构顺序存储结构:数组链式存储结构:链表

常见数据结构:数组、链表、栈、队列、哈希表、树、堆、图
2.数据结构基本操作:
增、删、改、查
3.数组与链表
数组: 物理上存储连续。
链表:物理上随机存储.
时间复杂度比较:

查找更新插入删除
数组O(1)O(1)O(n)O(n)
链表O(n)O(n)O(1)O(1)

4.栈和队列

机制基本操作应用
先入后出(First In Last Out,FILO)入栈(push)、出栈(pop):O(1)浏览器导航
队列先入先出(First In First Out,FIFO)入队(enqueue)、出队(dequeue):O(1)线程调度

(数组实现时可以采取循环队列来维持队列容量恒定)
5.哈希表(散列表)
本质也是数组。通过哈希函数作为中转站把key和数组下标进行转换。
提供键(key)和值(Value)的映射
基本操作:
写操作(put):有可能会产生哈希冲突。解决方法:开放寻址、链表法。
读操作(get):通过key寻找value。
(Python中哈希表对应的集合叫字典(dict),且采用开放寻址方法处理哈希冲突;Java采用链表法处理哈希冲突。)

未完待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值