MOOC数据结构与算法Python版-第七周测验

2024-02-28 00:48

本文主要是介绍MOOC数据结构与算法Python版-第七周测验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 单选(2分)

以下关于冒泡和选择排序算法的叙述何者正确?B

  • A.

    平均时间复杂度上,冒泡排序的复杂度较低

  • B.

    其它选项皆不正确。

  • C.

    平均时间复杂度上,选择排序的复杂度较低

  • D.

    空间复杂度上,选择排序的复杂度较低

解析:  B、两者均有O(N^2)的时间复杂度和O(1)的空间复杂度。

2 单选(2分)

以下关于归并和快速排序算法的叙述何者正确?D

  • A.

    空间复杂度上,归并排序的复杂度较低

  • B.

    平均时间复杂度上,快速排序的复杂度较低

  • C.

    平均时间复杂度上,归并排序的复杂度较低

  • D.

    空间复杂度上,快速排序的复杂度较低

解析:  D、空间复杂度上,归并排序的复杂度是O(N),快速排序是O(logN);时间复杂度上均是O(N logN)

3 单选(2分)

设一组初始记录关键字序列(5,2,6,3,8),利用冒泡排序进行升序排序,则第一趟冒泡排序的结果为以下何者?B

  • A.

    2,3,5,6,8 

  • B.

    2,5,3,6,8

  • C.

    2,3,6,5,8

  • D.

    2,5,6,3,8

解析:  B、第一趟冒泡后,2和5易位,3和6易位

4 单选(2分)

设一组初始记录关键字序列(5,2,6,3,8),利用插入排序进行升序排序,则第二次插入排序的结果为以下何者?C

  • A.

    2,5,3,6,8

  • B.

    2,3,5,6,8

  • C.

    2,5,6,3,8

  • D.

    5,2,3,6,8

解析:  C、第一次将2插入到5前面,序列变成2,5,6,3,8;第二次将6插入到5后面,序列还是2,5,6,3,8。

5 单选(2分)

给定两个顺序列表mylst1, mylst2,两者的长度分别为m<n为已知,现要查找其中位数,问最好的查找方式的时间复杂度?D

  • A.

    O(m^2)

  • B.

    O(m logn)

  • C.

    O(mn)

  • D.

    O(logm)

解析:  D、先取两者各自的中位数进行比较,并对mylst1进行二分查找,以mylst2对应的反向shift下标取得的值作为比较基准。

6 多选(3分)

所谓排序算法的稳定性是指:排序前2个相等的数,其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。以下哪些排序算法是稳定的?CD

  • A.

    选择排序

  • B.

    希尔排序

  • C.

    归并排序

  • D.

    插入排序

7 多选(3分)

现在有一个几乎顺序排列的,非常大的列表。问以下哪些算法有可能得到时间复杂度O(N)? BCD

  • A.

    快速排序

  • B.

    插入排序

  • C.

    冒泡排序

  • D.

    归并排序

解析:  A、快速排序的比较次数有O(n logn)  B、对于列表 mylst = [100000]+[i for i in range(100000)]+[i for i in range(100001, 200000)],若总是从已排序完成的列表末尾开始检查,那么前100000个插入各要两次比较,后面各要一次比较,比较次数与赋值操作次数均为O(n)。  C、对于列表 mylst = [100000]+[i for i in range(100000)]+[i for i in range(100001, 200000)],第二趟冒泡列表无变动,可判定冒泡排序完成。  D、排序过程中可检测,如果前段序列的最大值小于等于后段序列最小值,则说明序列可以直接形成一段有序序列不需要再归并。

8 多选(3分)

以下哪些排序方式,其最坏情况的时间复杂度O(N^2)的?ABD

  • A.

    快速排序

  • B.

    归并排序

  • C.

    选择排序

  • D.

    插入排序

解析:  B、最坏情况复杂度O(N logN)

这篇关于MOOC数据结构与算法Python版-第七周测验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754027

相关文章

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相