Android高效加载大图、多图解决方案,有效避免程序OOM

          由于 5月份要软考,于是乎便开始了我的软考复习之路。到现在为止开始复习也有两周了。还有一个半月

的时间,其中还要考一门考试。时间也是非常紧的了。

 

         从软考的复习看来,为什么要把数据结构放在第一位复习呢?原来数据结构不仅是一般程序设计的基础,而

且是设计和实现编译程序、操作系统、数据库系统以及其他系统程序的重要基础。并且计算机本来就是对信息的

加工处理的,数据只有在执行之后才有意义,所以先了解了数据的存储结构,然后再步步深入进而更深入学习进

程等知识。本篇文章简单介绍了数据结构的基本知识,大概框图,整理思路。

 

         数据结构是计算机存储、处理数据。其中根据数据结构的内容也能理解数据结构是数据的存储,组织数据的

方式。其中数据通过不同的方式存放在计算机中,进而数据的结构直接影响算法的选择和效率。了解了这些之后

就来看看数据结构的内容吧。

 

 

数据结构的分类

Android高效加载大图、多图解决方案,有效避免程序OOM

    

    逻辑结构是数据元素之间的逻辑关系,即数据元素之间的关联方式或邻接关系。

    存储结构是逻辑结构在计算机中的实现。


结构

特点

存储方法

基本操作

线性表

线性表是最简单、最基本、也是最常用的一种线性结构

顺序存储和链式存储

插入、删除和检索等

对具有层次结构的数据需要用树形结构来描述,树形结构可以表示更复杂的数据

顺序存储和链式存储

查找、插入、删除

结点之间的邻接关系可以是任意的。可以描述多种复杂的数据对象,应用较为广泛

邻接矩阵、邻接表(顺序存储和链式存储的结合)

搜索

Hash

十分实用的查找技术,具有极高的查找效率

散列存储

查找

 


 

算法

   算法的设计取决于逻辑结构,而实现依赖于采用的存储结构。

 

查找算法

算法

特点

优点

缺点

平均查找长度

适用范围

顺序查找

顺序比对当前结点与关键字是否相等

实现起来简单方便,逐个查询

效率不高

n+1/2

 

二分查找

每次查找中我们都把表的长度减半

更节省时间和空间

二分查找要求表元素是排好序的

lg(n+1)-1

只是用于顺序存储结构

分块查找

由一个索引表和一个顺序表组成

有索引表,查找速度快

数据元素的排序和索引顺序表的分块是要额外花时间的

(分块查找索引表)平均查找长度=Log2(n/s+1)+s/2

 

(顺序查找索引表)平均查找长度=(S2+2S+n)/(2S)

介于顺序查找和二分查找之间


排序算法

Android高效加载大图、多图解决方案,有效避免程序OOM


    排序算法的分类如上所示,学习这几个算法,首先要了解每个算法的特点、优缺点、性能(时间复杂度和空

复杂度)、稳定性等特点就能很好掌握,区分。

 

 

总结

    由上面的内容可以看出计算机算法与数据的结构密切相关,如上图,每种算法都有适用的数据结构,也就

是算法无不依附于具体的数据结构,数据结构直接关系到算法的选择和效率。


    通过写这篇文章,发现了虽然是自考学过,但是还是不能大意,还需要计划,做好总结,编织知识网,一点

点去积累。这只是一个开始。


 

Android高效加载大图、多图解决方案,有效避免程序OOM,布布扣,bubuko.com

Android高效加载大图、多图解决方案,有效避免程序OOM

上一篇:Android学习笔记(六)——从Activity返回数据


下一篇:JavaScriptCore框架在iOS7中的对象交互和管理教程