【数据结构与算法】概论

  1. (多选题, 3分)设n为算法中的问题规模,通常用()渐进符号表示算法的执行时间与n之间的一种增长关系。
    A. Ο
    B. Θ
    C. Ω
    D. Σ
    E. Φ
    正确答案: ABC
  • 解析:
    Ο是渐进上界,Ω是渐进下界。Θ需同时满足大Ο和Ω,故称为确界(必须同时符合上界和下界)。Ο极其有用,因为它表示了最差性能。
    Θ,读音:西塔;既是上界也是下界(tight),等于的意思。
    Ο,读音:大偶;表示上界(tightness unknown),小于等于的意思。
    ο,读音:小欧;表示上界(not tight),小于的意思。
    Ω,读音:欧米伽(大写);表示下界(tightness unknown),大于等于的意思。
    ω,读音:欧米伽(小写);表示下界(not tight),大于的意思。
  1. (多选题, 3分)对算法与数据结构关系的描述,正确包括()。
    A. 数据结构是算法设计的基础。
    B. 一种数据结构只支持一种算法设计。
    C. 算法是编程思想,数据结构则是这些思想的逻辑基础
    D. 算法设计就是在选定的存储结构上设计一个满足要求的好算法。
    正确答案: ACD
    解析:
    (1)数据结构只是静态的描述了数据元素之间的关系;
    (2)高效的程序需要在数据结构的基础上设计和选择算法。
    (3)程序 = 数据结构 + 算法
  2. (多选题, 3分)算法操作的对象是数据,数据间的()就是数据的数据结构。
    A. 逻辑关系
    B. 存储方式
    C. 处理方式
    D. 控制关系
    正确答案: ABC:逻辑关系; 存储方式; 处理方式;
  3. (多选题, 3分)算法设计应满足以的目标包括()。
    A. 输入输出性
    B. 正确性
    C. 可使用性
    D. 可行性
    E. 健壮性
    正确答案: BCE
    解析:算法设计应满足以下几个目标
    (1)正确性:要求算法能够正确地执行预先规定的功能和性能要求。这是最重要也是最基本的标准。
    (2)可使用性:要求算法能够很方便地使用。这个特性也叫用户友好性。
    (3)可读性:算法应该易于使人理解,也就是可读性好。为了达到这个要求,算法的逻辑必须是清晰的、简单的和结构化的。
    (4)健壮性:要求算法具有很好的容错性,即提供异常处理,能够对不合理的数据进行检查,不经常岀现异常中断或死机现象。
    (5)高效率与低存储量需求:通常算法的效率主要指算法的执行时间。对于同一个问 题,如果有多种算法可以求解,执行时间短的算法效率高。算法存储量指的是算法执行过程 中所需的最大存储空间。效率和存储量都与问题的规模有关。

一个算法必须满足5大特性
1、有穷性:一个算法必须执行有穷步后结束、
2、确定性:对于每种情况下所应执行的操作,在算法中都应该有确切的规定,不会产生二义性,使得算法的执行者和阅读者都能明确其含义以及如何执行。
3、可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现
4、输入:一个算法应该有0个、一个或多个输入。
5、输出:一个算法应该有一个或多个输出

  1. (单选题, 2分)一切合法的输入数据都能得出满足要求的结果,包括典型的、苛刻的输入数据也能够得出满足要求的结果。这个含义对应算法的()。
    A. 可靠性
    B. 正确性
    C. 有效性
    D. 可用性
    正确答案: B
    解析:
    正确性:对合法的输入有满足要求的结果
    健壮性:对非法的输入有适当的处理
  2. (单选题, 2分)算法要对异常情况进行适当的处理,就是算法的()。
    A. 正确性
    B. 可用性
    C. 健壮性
    D. 可行性
    正确答案: C
  3. (判断题, 1分)如果一个算法对其每一个输入实例,都能输出正确的结果并停止,则称它是可靠的。
    A. 对
    B. 错
    正确答案: 错
    解析:
    正确性:合法的输入的处理
  4. (判断题, 1分)算法是把人类找到的求解问题的方法,用算法要素过程化、形式化、机械化地表示出来。
    A. 对
    B. 错
    正确答案: 对
  5. (判断题, 1分)算法分析是分析算法占用计算机资源的情况,即分析算法的时间复杂度。
    A. 对
    B. 错
    正确答案: 错
    解析:时间复杂度和空间复杂度。
  6. (判断题, 1分)一个算法的时间用Ω符号表示时,总是采用最有价值的g(n)表示,称之为“紧凑下界”或“紧确下界”。
    A. 对
    B. 错

10.下列哪个函数是O(N)的? (2分)
选项
A (logN)2
B (NlogN)/1000
C N(logN)2
D N2​​/1000
解析:(logN)2 < N < (NlogN)/1000 < N(logN)2 < N2​​/1000。
11.下列函数中,哪个函数具有最快的增长速度? (2分)
选项
A N2​​ logN
B N(logN)4
C N3
D NlogN2
解析:NlogN2 < N2​​logN < N(logN)4 < N3。
13.下列函数中,哪个函数具有最慢的增长速度:(2分)
选项
A N1.5
B NlogN2
C N2​​ logN
D N(logN)2
解析:NlogN2 < N1.5 < N(logN)2 < N2​​logN。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是回复: 可以使用Python编程来计算每种图书购买的数量,然后计算应付的总费用。具体代码如下: # 定义每种图书的单价 price = {'计算概论': 28.9, '数据结构与算法': 32.7, '数字逻辑': 45.6, 'c++程序设计教程': 78, '人工智能': 35, '计算机体系结构': 86.2, '编译原理': 27.8, '操作系统': 43, '计算机网络': 56, 'java程序设计': 65} # 定义每种图书购买的数量 quantity = {'计算概论': 2, '数据结构与算法': 3, '数字逻辑': 1, 'c++程序设计教程': 4, '人工智能': 2, '计算机体系 ### 回答2: 在这个问题中,我们需要编写一个程序来基于每种书买的数量来计算应付的总费用。我们可以将每种书的单价和数量存储在一个二维矩阵中,然后通过对矩阵进行迭代和计算得出最终的总费用。 具体的计算步骤如下: 1. 定义一个二维数组来存储每种书的单价和数量。 2. 通过循环迭代数组中的每个元素,并计算每种书的总价。 3. 在每个迭代步骤中,将单价和数量相乘,然后累加到总价中。 4. 最后,输出计算出的总价。 下面是一个简单的 Python 程序,可以实现上述步骤: ```python # 定义每种书的单价 prices = { '计算概论': 28.9, '数据结构与算法': 32.7, '数字逻辑': 45.6, 'c程序设计教程': 78, '人工智能': 35, '计算机体系结构': 86.2, '编译原理': 27.8, '操作系统': 43, '计算机网络': 56, 'java程序设计': 65, } # 定义每本书的数量 quantities = { '计算概论': 2, '数据结构与算法': 1, '数字逻辑': 3, 'c程序设计教程': 2, '人工智能': 1, '计算机体系结构': 1, '编译原理': 3, '操作系统': 2, '计算机网络': 1, 'java程序设计': 4, } # 计算总价 total_cost = 0 for book, quantity in quantities.items(): total_cost += prices[book] * quantity # 输出结果 print('总费用为:{} 元'.format(total_cost)) ``` 这个程序可以计算出所有图书的总费用,并输出结果。 ### 回答3: 本题需要编写一个简单的程序来计算每种图书购买的数量所需要付出的总费用。这个程序需要输入每种图书的单价和购买数量,然后将它们相乘并累加起来,最后输出总费用。 在开始编写程序之前,我们需要理解一些基本的编程概念,如变量和算术运算符。变量是用来存储数据的容器,它们可以在程序中被引用和修改。算术运算符是用来执行基本算术运算的符号,如加号、减号、乘号和除号。 下面是一个示例程序,它演示了如何使用变量和算术运算符来计算图书的总费用: ```python # 定义每种图书的单价 price1 = 28.9 price2 = 32.7 price3 = 45.6 price4 = 78 price5 = 35 price6 = 86.2 price7 = 27.8 price8 = 43 price9 = 56 price10 = 65 # 读取每种图书的购买数量 num1 = int(input("请输入第1本图书的购买数量:")) num2 = int(input("请输入第2本图书的购买数量:")) num3 = int(input("请输入第3本图书的购买数量:")) num4 = int(input("请输入第4本图书的购买数量:")) num5 = int(input("请输入第5本图书的购买数量:")) num6 = int(input("请输入第6本图书的购买数量:")) num7 = int(input("请输入第7本图书的购买数量:")) num8 = int(input("请输入第8本图书的购买数量:")) num9 = int(input("请输入第9本图书的购买数量:")) num10 = int(input("请输入第10本图书的购买数量:")) # 计算总费用 total = price1 * num1 + price2 * num2 + price3 * num3 + price4 * num4 + price5 * num5 + price6 * num6 + price7 * num7 + price8 * num8 + price9 * num9 + price10 * num10 # 输出结果 print("总费用为:", total, "元") ``` 这个程序首先定义了每种图书的单价,并读取每种图书的购买数量。然后,它使用算术运算符将每种图书的总价相加起来,最后输出结果。 需要注意的是,在实际编写程序时,我们可以使用循环和列表来避免重复的代码。例如,我们可以使用一个列表来存储每种图书的单价和购买数量,然后使用循环来计算总费用。这样做可以使程序更加简洁和易于维护。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值