数据结构和算法初步了解

数据结构和算法的作用:
数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排;
数据结构包括:数组、链表、栈、二叉数、哈希表等等。算法则是对这些结构中的数据进行各种处理;
例如:查找一条特殊的数据项或对数据项进行排序;

显示世界中的建模:
有些数据结构能直接对真是世界的情况构造模型。其中最重要的数据结构是图,图可以用来
表示城市之间的航线,电路中的连接,或是某一工程中的任务安排关系;
例如:一个队列可以模拟顾客在银行中排队等待的模型,还可以模拟汽车在收费站等待缴费的模型;

数据结构的特性:
数据结构 优点 缺点
----------------------------------------------------------------
数组 插入快,如果知道下标,可以非常快的存取 查找慢,删除慢,大小固定
有序数组 比无序的数组查找快 删除和插入慢,大小固定;
栈 提供先进后出的方式存取 存取其他项慢
队列 提供先进先出方式的存取 存储其他项很慢
链表 插入快,删除快 查找慢
二叉树 查找、插入、删除都快 删除算法复杂
红-黑树 查找、插入、删除都快,树总是平衡的。 算法复杂
2-3-4树 查找、插入、删除都快,树总是平衡的。 算法复杂
类似的树对磁盘存储有用
哈希表 如果关键字已知则存取极快,插入快 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分;
堆 插入、删除快、对最大数据项存取很快 对其它数据项存取慢
图 对现实世界建模 有些算法慢且复杂
--------------------------------------------------------------------------------


注:java语言中一个类的对象字段被称为字段,但是在c++中称之为成员;

面向对象的几个重要的特性:
* 对象同时包括方法和字段(数据);
* 类是任意数目的对象的说明;
* 创建一个对象,要将关键字new和类的名称连用;
* 调用一个对象的方法,要使用点运算符;

面向对象编程的两个重要特征:继承和多态;
继承:由基类扩展或派生形成一个新类,这个扩展类拥有基类的所有属性,并加上了其他属性;
多态:以相同的方法处理来自不同类的对象。 为了能够正常的运行,这些不同的类必须从同
一个基类中派生出来,实际上,多态经常指的是通过一种方法的调用,而实质是对不同的类的
对象执行不同的方法;


你可能感兴趣的:(java,数据结构,算法)