java -- 数据结构总结

java -- 数据结构总结

 

 

概念

 

数据结构:数据之间的关系,提高程序效率。

 

 

逻辑关系:认为认为

 

集合:在一个范围内有多个数据,数据之间没有关系

线性:一对一关系

树形:一对多

图:多对多

 

 

物理关系:内存存储

 

顺序存储:数组

链式存储:链表

 

 

问题

 

数据结构难不难?    容易但很难

有没有用?               有用且没有用,平时工作可能用不上,但是能够学习编程思想

 

 

 

 

算法

 

大数字存储,大数字的运算

 

    int或bigint都有数字大小限制,所以可以用数组保存,长度100的数组就能够存储很大的数字了。例如:372 * 18



 

 

两个大数字相乘??

 

 

排序

 

插入排序、希尔排序

选择排序、堆排序

冒泡排序、快速排序

归并排序

基数排序

 

 

查找

 

二分法查找(数据库的索引)

 

 

 

 

常用数据结构

 

ArrayList:动态数组,当容量不足时,自动扩容为1.5倍 +1

 

LinkedList:双向循环链表,不需要扩容

单链表

单向循环链表

双链表

双向循环链表

 

 

比较

 

添加:LinkedList效率高,添加中间最慢,因为从第一个就知道最后一个,因为ArrayList有可能要扩容

删除: LinkList效率依然高,删除中间最慢,ArrayList从前往后删除效率太低,从后往前删除还是快点,注意:循环删除时候,一定要从后往前遍历

获取和设置:LinkedList效率很低,ArrayList是数组的,所以效率高得多

 

 

 

猜你喜欢

转载自youyu4.iteye.com/blog/2401128