数据结构与算法(a)

1.数据结构与算法

程序 = 算法 + 数据结构

算法 = 逻辑结构 + 控制

数据结构:线性结构、树状结构和图状结构

2.术语

数据(Data)

数据元素(Data Element)

数据项(Data Item)

数据对象

数据结构

逻辑结构:线性表、树、图和集合

存储结构:顺序存储和链式存储

数据操作

数据类型

抽象数据类型(ADT)

3.算法

算法用途:设计并实现一种用计算机来解决问题的方法。

算法特性:

(1)输入:0个或多个外部量输入

(2)输出:产生至少一个量作为输出

(3)确定性:组成算法的每条指令清晰无歧义

(4)有限性:算法执行时间有限的

好的算法特性:

(1)正确性

(2)可读性

(3)健壮性

(4)高效性:算法的复杂性分析(见)

4.计算机问题求解过程:

(1)问题理解:清楚问题输入、要求和输出;

(2)数据结构设计:

(3)算法设计;

(4)算法分析:

(5)程序实现与测试

5.算法复杂度分析

算法性能比较方法:

(1)编程后测试运行时间:成本高

(2)编程前分析可能运行时间:成本低

分析:时间复杂性(主要)、空间复杂性(次要)

衡量标准:问题规模N、算法输入I和算法本身函数A              C = T(N,I,A)

语句频度(时间频度T(N)):一个算法中语句执行步数。

算法的时间复杂度记做:T(N) = O( F(N) )      N为重复执行次数,F(N)为某一个函数

// 伪代码
void select_sort(int& a[], int n)
{
    for(i = 0; i < n-1; ++i)
        j = i;
        for(k = i+1; k < n; ++k)
            if(a[k] < a[j])  j = k;
        if(j != i)
        {
            int t = a[j];
            a[i] = a[j];
            a[j] = t;
        }

}

T(n) = n^2     嵌套循环

最坏情况时间复杂度:T(N) = MAX(N,I)               I为max

最好情况时间复杂度:T(N) = MIN(N,I)                 I为min

平均情况时间复杂度:T(N) = AVR(N,I)                 I为avr

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值