数据结构和算法简单概括

  • 数据结构
    1:存储结构 (顺序:数组 链表:list 地址链接 )
    2:逻辑结构(线性:线性表、栈、队列 非线性 树 图)
    在java中并没有限定某种java实现类就是某一种逻辑结构 ArrayList LinkList 也可以作为栈或队列来使用 只是一种代码逻辑上的概念
  • 算法 针对数据结构的
    增、
    删、
    改、
    查( 1线性查找.:顺序查找、 二分查找、 差值查找、 斐波那契查找 2索引或分级查找 3树表查找 6. 分块查找7. 哈希查找)
    排序( 冒泡排序 快速排序 直接插入排序 希尔排序 选择排序 堆排序 归并排序 桶排序 基数排序)、
    遍历(深度优先、广度优先, 最短路径,最小生成树)

时间复杂度和空间复杂度
时间复杂度
时间复杂度有最好、平均、最坏三种情况

在这里插入图片描述

空间复杂度
空间复杂度包含 算法所占空间 输入输出空间 零时分配的空间

查找算法
查找其实就是对索引的计算,所以需要有个前提是数据储存结构支持随机访问
如果是链表 尝试使用数组的形式转存成有序map形式 如java中的hashmap 否者只能顺序查找 当然顺序遍历也有提高效率的方式 就是牺牲内存 部分索引简历链表 即跳表的方式查找

效率具体还是应该看实际的生产数据
有序的先线性结构数据程指数增长的规律当然斐波那契查找好
主要看数据位置索引取值函数能不能和数值分布的函数对应上
比如 [1,2,4,8,16,32] 他的索引取发应该就是log2(a【i】)
根据数据规律选择近似的下标定位函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值