java -- 数据结构总结

本文深入探讨了数据结构的基本概念,包括逻辑关系如集合、线性、树形和图等,以及物理关系如顺序存储和链式存储。此外,还讨论了算法如大数字存储与运算、排序和查找的方法,并介绍了常用的Java数据结构如ArrayList和LinkedList的特点及应用场景。
摘要由CSDN通过智能技术生成

java -- 数据结构总结

 

 

概念

 

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

 

 

逻辑关系:认为认为

 

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

线性:一对一关系

树形:一对多

图:多对多

 

 

物理关系:内存存储

 

顺序存储:数组

链式存储:链表

 

 

问题

 

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

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

 

 

 

 

算法

 

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

 

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



 

 

两个大数字相乘??

 

 

排序

 

插入排序、希尔排序

选择排序、堆排序

冒泡排序、快速排序

归并排序

基数排序

 

 

查找

 

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

 

 

 

 

常用数据结构

 

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

 

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

单链表

单向循环链表

双链表

双向循环链表

 

 

比较

 

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

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

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值