数据结构与算法学习——算法基本知识

算法是一个抽象的解决问题的方法,需要具体的实现手段才能实现。计算机程序设计中,狭义的认为编程语言就是算法的实现手段。
编程语言:C,C++,C#,Basic,Java,Pascal等!

以下使用Java编程语言!面向对象编程(object Oriented Programming,OOP)

Java语言的集成开发环境包括:JDK,NetBeans,JBuiler,Eclipse.

程序结构:
  顺序结构
  分支结构:if...else, switch
  循环结构:while, do...while, for
  跳转结构:break,continue

1.算法的5个特性:有穷性,确切性,输入,输出,可行性。

2.算法的分类

(1)按照应用领域分类:基本算法,数据结构相关算法,数据结构相关算法,几何算法,图论算法,规划算法,数值分析算法,加密/解密算法,排序算法,查找算法,并行算法和数论算法等!

(2)按照算法结果的确定性分类:确定性算法:在有限的时间内完成,得到唯一的结果,且常取决于输入值。非确定性算法:在有限的时间内完成,结果往往不是唯一的,存在多值性。

(3)按照算法的思路分类:递推算法,递归算法,穷举算法,贪婪算法,分治算法,动态规划算法,迭代算法等!

 3.算法基本概念:

(1)算法与公式的关系:公式是一种高度精简的计算方法,可以认为是一种算法;算法的形式可以比公式更复杂,解决的问题更广泛!

(2)算法与程序的关系:程序设计语言是算法实现的一种形式,也是一种工具。

(2)算法与数据结构的关系:数据结构是算法实现的基础!

(数据结构+算法+程序设计语言=程序)

4.算法的表示:自然语言表示,流程图表示,N-S图表示,伪代码表示。

流程图表示:

(1)流程图3种流程结构:

  顺序结构,  分支结构,  循环结构.                                                                

(2)循环结构:当型循环:先判断条件再循环,while;直到型循环:先执行再判断,do...while、until

N-S图(盒图或CHAPIN)表示:

  将整个程序写在一个大框图内,大框图由若干个小的基本框图构成。

伪代码表示:

  介于自然语言和编程语言之间,并非真正的程序代码。伪代码并不能在计算机中运行,使用其的目的是将算法描述成一种类似于编程语言的形式,如C,C++,Java,Pascal等。

5.算法的性能:时间复杂度,空间复杂度。

时间复杂度:算法执行所需要花费的时间,越短越好。简短精悍的算法程序往往速度更快。还与问题的规模相关。

空间复杂度:算法程序在计算机执行所需要消耗的存储空间;

(1)程序保存所需要的存储空间,程序的大小;

(2)程序在执行过程中所需要消耗的存储空间资源,如程序在执行过程中的中间变量等!

 

转载于:https://www.cnblogs.com/Cocoomg/p/9797014.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值