基于java的数据结构与算法(第一话)

基于java的数据结构与算法(第一话)

数据结构
官方解释

数据结构的主要任务是通过分析数据对象的结构特征,包括逻辑结构及数据对象之间的关系,然后把逻辑结构表示成计算机课实现的物理结构,从而便于计算机处理。

通俗说法

体现数据元素之间关系组织的集合,作用是组织、存储数据。

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

                 ————百度百科

通俗的说:

   一定条件(环境变量:软件环境+硬件环境)下——》一些数据(常量)——》一定计算方法——》想要的结果

关键词:最少的时间,最少的内存空间,完成需求

eg 1:

需求:计算1到10000累加

方法1:for循环累加 sum+=1;

方法 2:n=10000, (n/2) *(n+1)

分析:

  方法一:循环10000次加法

  方法二:一次加法、一次乘法、一次除法

For循环{//输入规模

  For循环{//输入规模-----暂时可以看做自变量

  N+=1;//核心操作----执行次数也就是(因变量)方程

}

}

方法1:分三块三角形拼接打印

在这里插入图片描述

方法2:
在这里插入图片描述

两层for循环看做自变量对应x,y轴,核心方程是约束条件,最后执行(只要有方程就能打印出任何二维图案,扩展:微元法、微积分、三维xyz等等)
在这里插入图片描述

两种方法优缺点大家自行讨论。

Eg 2:

需求:计算10的阶乘

方法一:

Long result = fun(10);

Public static long fun(long n){

If(n==1){

Return 1;

}

Return n*fun(n-1);

}

方法二:

For循环——》num*= i ;i<=100;

分析:

  方法一:10次递归,占用10块栈内存;

  方法二:占用1块栈内存;

----------------有问题欢迎一起留言讨论

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值