1,生活中的数据结构
前面我们提了一下生活中的数据结构:图书的摆放,为了更加方便的插入和搜索书籍,需要合理的组织数据,并且通过更加高效的算法插入和查询数据,
除了这些生活中还有很多案例比如快递员的快递:上大学期间不知道大家有没有收过快递呢,大学的快递通常情况不是送到宿舍的,而是放在某个固定的地方,让大家自己去拿,当你跑到固定的地方拿快递。快递管理员一般会将全部的快递按照物流公司做好分类,然后按照快递到达日期再次进行细分,这样的话就很容易找到相应的快递了
结论:合理的组织数据对于我们获取数据效率的重要性至关重要
1,生活中的算法
比如现在有这么一个问题需要解决:北京到上海之间有一座高架桥,高架线的长度是1000000米,有一天高架线其中一处出现了故障导致不能正常工作,但是又不确定具体再哪里出现了问题
请你想出一种算法,快速的解决这个问题,你会怎么办呢
下面我就给出两个解决方案看是不是和你想的一样呢?
- 线性查找:以上海或北京为起点开始一米一米的逐一排查,最终一定能找出出问题的线段,这个方案比较耗时,运气不好的话我们需要排查1000000次,这是最坏的情况,平均需要 500000次
- 二分查找:从高架线的中心位置开始排查,首先确定问题是出在上海到中心点的线段内还是出在了北京到中心点的线段内,这样就可以大大缩小排查范围,然后同样的做法,再次排查出问题的线段,以此类推 ,以这种方式的话我们最多需要排查20次就可以找到问题所在,
结论:解决问题的办法由很多,但是好的孙发对比于差的算法有天壤之别