java数据结构与算法之概述

什么是数据结构?

数据结构是指相互之间存在的一种关系或多种关系的数据元素的集合和该集合中数据元素之间的关关系组成。简单点就是数据和数据之间的关系!!!

基础数据结构

数组

优点缺点
插入快,如果知道下标,可以快速的存取查找慢,删除慢,大小固定

有序数组

优点缺点
比无序数组查询快删除和插入慢,大小固定

优点缺点
提供后进后出的方式存储存取其他元素很慢

队列

优点缺点
提供先进先出的方式存储存取其他元素很慢

链表

优点缺点
插入快,删除慢查询慢

二叉树

优点缺点
查询,插入,删除快(前提是树平衡)删除算法复杂

高级数据结构

红黑树

优点缺点
查询,插入,删除快(前提是树平衡)算法复杂

2-3-4 树

优点缺点
查询,插入,删除快(前提是树平衡)算法复杂

哈希表

优点缺点
如果知道关键字则存取快,插入快删除慢,如果不知道关键字则存取很慢

优点缺点
插入快,删除快对其他元素存取慢

优点缺点
对现实世界模拟算法慢且复杂

算法概述

算法的定义

是指解题方案的准而完整的描述,是一系列的解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制

算法的基本要求

正确性
可读性
健壮性
时间复杂度
空间辅助度

大O表示法

什么是大O表示法?

大O表示法可以告诉我我们算法的快慢
大O表示的是操作数,它指出了算法运行时间的增速
O(n) 括号里的是操作数。

简介

在这里插入图片描述

O(n!)随着数据量的增加,运行时间近乎是直线上升
O(2^n)随着数据量的增加,运行时间也几乎是直线上升
O(n^2)冒泡排序,插入排序,选择排序的时间复杂度
O(nlogn)随着数量增多,运行时间平缓上升
O(logn)冒泡排序,插入排序,选择排序的时间复杂度
O(1)不受数据量影响,栈和队列有可以达到!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值