数据结构与算法总述

第一周
第一部分
1,编程是通过一种程序设计语言,将抽象的算法实现为计算机可以执行的代码的过程;
2,算法+数据结构=程序;
3,程序设计语言需要为算法的实现提供实现“过程”和“数据”的机制;具体表现为“控制结构”和“数据类型”;
(1)控制结构:顺序循环、分支选择和循环迭代;
(2)数据类型:表示数据的形式,如整数,字符;
4,数据抽象:抽象数据类型(Abstract Data Type,ADT)是对数据进行处理的一种逻辑描述,并不涉及如何实现这些处理;建立了一种对数据的“封装”;
(1)同一ADT可以采用不同的数据结构来实现;
(2)采用程序设计语言的控制结构和基本数据类型来实现ADT所提供的逻辑接口;
(3)对数据实现“逻辑”层次和“物理”层次的分离,可以定义复杂的数据模型来解决问题,而不需立刻考虑次模型如何实现;

第二部分
1,算法分析的概念:从计算资源消耗的角度来评判和比较算法;
2,什么是计算资源?
(1)一种算法解决问题过程中需要的存储空间或内存;但存储空间受到问题自身数据规模的变化影响;
(2)另一种是算法的执行时间;

示例一:
import time
def sumOfN2(n):
    start = time.time()
    theSum = 0
    for i in range(1,n+1):
        theSum = theSum + i
    end = time.time()
    return theSum,end - start
    
for i in range(5):
    print("%d%10.7f"%sumOfN2(10000))
输出:
50005000 0.0019991
50005000 0.0019987
50005000 0.0019984
50005000 0.0049975
50005000 0.0019972
示例二:
import time
def sumOfN3(n):
    start = time.time()
    theSum = (n*(n+1))/2
    end = time.time()
    return theSum,end-start
print("%d%10.7f"%sumOfN3(100000))

3,同一个算法,采用不同编程语言编写,放在不同机器上运行,得到的运行时间会不一样,有时候会不大一样;需要更好的方法来衡量算法运行时间,这些指标与具体机器、程序、运行时段都无关;
4,大O表示法
基本概念:一个算法所实施的操作数量或步骤数可以作为独立于具体程序/机器的度量指标;
算法度量指标:赋值语句是一个合适的选择;一条赋值语句同时包含了(表达式)计算和(变量)存储两个基本资源;(控制流语句仅仅起到了组织语句的作用,并不实施处理);
数量级函数:
(1)基本操作数量函数T(n)的精确值并不是特别重要,重要的是T(n)中起决定性因素的
主导部分;
(2)数量级函数描述了T(n)中随着n增加而增加速度最快的主导部分;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值