自己整理的表格
Java数据结构 | ||||
序号 | 数据结构 | 对象 | 优点 | 缺点 |
1 | 栈 | Stack | 后进先出存取方式 | 存取其他项很慢 |
2 | 队列 | Queue | 先进先出存取方式 | 存取其他项很慢 |
3 | 堆 | Heap | 插入、删除快,对最大数据项存储快 | 存取其他项很慢 |
4 | 数组 | [] | 插入快 | 查找、删除慢,大小固定,只能存储单一元素 |
5 | 有序数组 | [] | 相对无序数组查询快 | 插入、删除慢,大小固定,只能存储单一元素 |
6 | 链表 | LinkedList | 插入、删除快 | 查询慢 |
7 | 哈希表 | Hash | 若知道key则存取极快 | 删除慢,对存储空间使用不充分 |
8 | 图 | Graph | 对现实世界建模 | 有些算法慢且复杂 |
9 | 动态数组 | ArrayList | 查询、修改快 | 插入、删除慢 |
10 | ||||
Java算法 | ||||
序号 | 特征 | 备注 | ||
1 | 有穷性 | 算法中的每个步骤都能在有限时间内完成 | ||
2 | 确定性 | 让人能明确其含义及如何执行,在任何条件下算法都只有一条路径 | ||
3 | 可行性 | 素有操作都可以通过已经实现的基本操作运算有限次数将以实现 | ||
4 | 有输入 | 有算法加工对象 | ||
5 | 有输出 | 算法的结果,即该算法的功能 | ||
Java算法设计原则 | ||||
序号 | 原则 | 备注 | ||
1 | 正确性 | 满足需求 | ||
2 | 可读性 | 容易让人理解,晦涩难懂的算法难以调试且可能有较多的错误 | ||
3 | 健壮性 | 对非法数据应当有恰当的反应及处理,而不是直接中断操作 | ||
4 | 高效且低存储 |