1.数据结构与算法概述。

目录

一、什么是数据结构?

二、什么是算法?

三、数据结构分类:

(1)逻辑结构

(1)集合结构

(2)线性结构(一对一)

(3)树形结构(一对多)

(4)图形结构(多对多)

(2)物理结构(存储结构)

(1)顺序存储结构

(2)链式存储结构

四、算法时间复杂度分析。

(1)算法效率的度量方法

(1)事后统计方法

(2)事前分析方法

(2)T(n)=O(f(n))

(3)比较算法随着输入规模的增长时,有以下规则:

(1)算法函数中的常数可以忽略。

(2)算法函数中最高次幂的常数因子可以忽略。

(3)算法函数中最高次幂越小,算法效率越高。

(4)大O记法(时间复杂度的记法)。

 (5)常见的大O阶。

理解:时间复杂度似乎只是研究执行次数函数的趋势变化。

​编辑

(1)线性阶(单循环)O(n)

(2)平方阶(双循环)O(n**2)

(3)立方阶(三循环)O(n**3)

(4)对数阶(底数可以省略,不影响趋势)O(logn)

(5)常数阶(没有重复执行的代码)O(1)

五、算法空间复杂度分析。

六、算法的复杂度上界和下界。


 

一、什么是数据结构?

用来组织和存储数据的结构的集合。(Map、数组就属于数据结构)

二、什么是算法?

根据一定的条件,对一些数据进行计算,得到想要的结果。(比如冒泡排序算法,对数据进行从小到大排序)

三、数据结构分类:

(1)逻辑结构

(1)集合结构

(2)线性结构(一对一)

(3)树形结构(一对多)

(4)图形结构(多对多)

(2)物理结构(存储结构)

物理结构:逻辑结构在计算机中真正的表示方式(存储方式)

(1)顺序存储结构

(2)链式存储结构

四、算法时间复杂度分析。

(1)算法效率的度量方法

(1)事后统计方法

缺点:受硬件条件影响,测试数据设计困难。

(2)事前分析方法

事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算。

程序运行时间主要取决于以下几个因素:

算法采用的策略和方法;

问题的输入规模   如 int n=100;for(int i=0;i<n;i++)输入规模是n即100,执行次数是2n+1

编译产生的代码质量;

机器执行指令的速度。

(2)T(n)=O(f(n))

45581dae2d91411a84fc3b9afdb9e4b0.jpeg

f(n)是执行次数,n是输入规模。

(3)比较算法随着输入规模的增长时,有以下规则:

(1)算法函数中的常数可以忽略。

如:f(n)=n+1,可以省略1。

(2)算法函数中最高次幂的常数因子可以忽略。

如:f(n)=2n**3+1,可以省略2。(根据规则1,+1也是省略的)

(3)算法函数中最高次幂越小,算法效率越高。

如:f(n)=n**x+1,x越小效率越高。

(4)大O记法(时间复杂度的记法)。

d0787ae6d830439cb9ed09103f018638.jpeg

82e72468a61a438cba5f62c1eccea447.jpeg

 (5)常见的大O阶。

理解:时间复杂度似乎只是研究执行次数函数的趋势变化。

8cac270e46aa4f4d9e5d52d5f5a1b88b.jpeg

(1)线性阶(单循环)O(n)

(2)平方阶(双循环)O(n**2)

(3)立方阶(三循环)O(n**3)

(4)对数阶(底数可以省略,不影响趋势)O(logn)

(5)常数阶(没有重复执行的代码)O(1)

 注意:调用函数的时候时间复杂度是相乘的或相加(相加后保留最高阶项,常数因子省略)。比如循环中,又调用循环,则O(n**2)

五、算法空间复杂度分析。

空间复杂度:描述算法对内存的占用情况。

java内存的使用一般是八个字节的倍数。

引用类型变量需要16个字节,创建一个对象需要16个字节。数组需要24个(自身16个,长度4个,补充4个)

b8cf88c7ae98400abead6951531d1db1.jpeg

27f20a01ed9e448fbe0b604b3a495863.jpeg

7b29f6172ffd40738f316a42f6d457e6.jpeg

005de05028ab4afbb9b884b531ad97ef.jpeg

六、算法的复杂度上界和下界。

上界:代表最大值。

下界:代表最小值。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用,这篇博客是关于一位学生利用整个暑假的时间来学习《数据结构与算法》课程并且持续更新的。而引用是一份关于Java数据结构与算法的学习笔记,涵盖了数据结构与算法概述、分类以及算法分析的内容。引用给出了数据结构的官方解释和大白话解释,以及数据结构的分类和物理结构的介绍。 所以,关于数据结构与算法的笔记,你可以参考这些资源来了解数据结构的概念、分类和物理结构,以及算法的分析和时间复杂度等内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [数据结构与算法——学习笔记汇总](https://blog.csdn.net/qq_42025798/article/details/118864568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Java数据结构与算法1-概述学习笔记](https://blog.csdn.net/qq_45498432/article/details/124067892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值