Java数据结构和算法-综述

Java数据结构和算法是对Robert Lafore的Java数据结构和算法学习的以自己方式的总结,里面可能会有绝大部分的内容和书上描述差不多(原谅我的语文不怎么好)。

1.数据结构和算法的作用

数据结构是对计算机内存或者磁盘中的数据的一种安。数据结构大致有数组、链表、图、二叉树等等。而算法是对数据结构中存储的数据进行一系列处理。大致可分为三类情况:现实世界数据的存储、程序员工具、建模。

1.1现实世界数据的存储

现实世界数据指的是在计算机中存储的外部物理数据,比如:一张电话薄记录的一个人信息,一条存货记录描述了一种商品。
在现实生活中我们也许可以通过一本本子来记录这些信息,随着科技的发展,现在我们可以将这些信息存储到计算机上,那么就需要考虑一下一些问题:
  1. 怎么在计算机内存中存放这些数据?
  2. 怎么删除存储的数据?
  3. 怎么插入新的数据?
  4. 怎么进行快速的查找自己想要的数据项?
  5. 怎么对已存储的数据按自己想要的方式排序?
  6. 这种存储的方式所能适用的数据大小是多少?

1.2程序员的工具

有些数据结构是不打算让用户接触的,而是仅被程序本身所接触。程序员可以通过栈、队列和优先级队列等数据结构来作为工具简化其他操作。

1.3建模

有些数据结构可以对生活当中的情况进行建模。其中比较重要的建模数据结构是图,通过图我们可以来表示城市之间的航线,旅行的路径,电路的连接等

2.数据结构概述

在Java当中主要的数据结构及其特性如下:
  1. 数组
    插入快,如果知道下标的话,能够非常快的存储;查找慢,删除慢,大小固定。
  2. 有序数组
    比无序数组查找快;删除和插入慢,大小固定。

  3. 提供先进后出的方式存取;存取其他项很慢。
  4. 队列
    提供先进先出的方式存取;存取其他项很慢。
  5. 链表
    插入快,删除快;查找慢。
  6. 二叉树
    插入、删除、查找都很快(如果二叉树平衡);删除算法复杂。
  7. 红-黑树
    插入、删除、查找都很快,树总是平衡的;算法复杂。
  8. 2-3-4树
    插入、删除、查找都很快,树总是平衡的,类似的树对磁盘存储有用;
    算法复杂。
  9. 哈希表
    如果关键字已知,对数据的存储很快;删除慢,在不知道关键字时,对数据的存储很慢,对存储空间使用不充分。

  10. 删除快、插入快,对最大数据项存取很快;对其他数据项存取慢。

  11. 对现实世界建模;有些算法复杂。

你可能感兴趣的:(Java数据结构和算)