第 8 章 排序

【考纲内容】

1.排序的基本概念;2. 直接插入排序;3. 折半插入排序;4. 起泡排序(Bubble Sort);

5.简单选择排序;6. 希尔排序(Shell Sort);7. 快速排序;8. 堆排序;

9.二路归并排序(Merge Sort);10. 基数排序;11. 外部排序;12. 排序算法的分析和应用

【考情统计】

年份

题数及分值

考点

单选题

综合题

总分值

2009

2

0

4

选择排序、排序算法的分析和应用

2010

2

0

4

交换排序、排序算法的分析和应用

2011

2

0

4

交换排序、选择排序

2012

2

0

4

插入排序、排序算法的分析和应用

2013

1

0

2

基数排序

2014

2

0

4

插入排序、交换排序

2015

2

0

4

插入排序、交换排序

2016

1

1

17

外部排序、快速排序的分治思想

2017

2

0

4

排序算法的分析和应用

2018

2

0

4

插入排序、选择排序

2019

3

0

6

交换排序、排序算法的分析和应用、外部排序

2020

2

0

4

选择排序、排序算法的分析和应用

2021

2

1

12

选择排序、基数排序

2022

2

1

12

归并排序、堆排序

2023

2

1

14

外部排序、排序算法的分析和应用、快速排序

2024

4

0

8

快速排序、大根堆、二路归并排序、败者树

【考点解读】
本章内容在 408 考试中主要以选择题的形式出现,但也考过几次应用题。虽然 408 考试还未在本章考过算法题,但未来也是有可能考的,不可忽视。各类排序算法的算法思想及各类排序算法的手工模拟是本章的重点,必须熟练掌握。408 考试也会着重考查各类排序算法的步骤和特点,以及它们之间的对比。
另外,提醒考生注意:408 考试是抽查,只要在 408 考试大纲范围内内容,408 考试都有可能考。例如,在 2023 年 408 考试中,命题人出其不意的考了一道 10 分的外部排序的应用题。外部排序这个知识点很多考生忽略了,甚至没有复习。导致这题的失分非常严重,一下子 10 分就没有了。数据结构这个科目在 408 考试中总共就 45 分,在这么一个细微的知识点上就丢失了10÷45≈22%的分数,这是非常可惜的!其实,只要记住了外部排序的过程,这题是很简单的。

【复习建议】
本章内容较为零散,由一个个独立的排序算法组成,各个算法之间其实关联性不强。考生可以利用碎片化的时间学习本章内容。学习本章时应注重动手模拟算法执行过程,结合具体的算法代码,深刻理解各种排序算法的具体步骤和特点。考生在复习过程中应注意以下几点:

      1.熟练掌握各种排序算法的步骤和特点,要能手写每一种排序算法的代码(应对算法题)。

        2.能够分析每一种算法的时间复杂度、空间复杂度及稳定性。

        3.熟练掌握各种排序算法的区别及其应用场景。

        4.了解外部排序的基本概念和步骤。

        如今 408 统考是大势所趋,408 考试难度越来越大。对于本章每一个排序算法的代码,建议考生都可以熟练写出,会分析各种排序算法的时间复杂度。

        最后,推荐一个学习本章内容的小技巧:因为真题常考各种排序算法的手工模拟,学完本章之后,建议大家在桌子上用便利贴写下一组数据,然后在每天开始复习之前花几分钟的时间,使用几个不同的排序方法对该组数据进行手动模拟排序并默写排序算法代码。坚持一段时间之后,大家就会对各种排序算法会有更加深刻的印象。

8.1 排序的基本概念

8.2 插入类排序

8.2.1 直接插入排序

8.2.2 折半插入排序

8.2.3 希尔排序

8.2.4 习题精编

8.2.5 真题演练

8.3 交换类排序

8.3.1 冒泡排序

8.3.2 快速排序

8.3.3 习题精编

8.3.4 真题演练

8.4 选择类排序

8.4.1 简单选择排序

8.4.2 堆排序

8.4.3 习题精编

8.4.4 真题演练

8.5 二路归并排序和基数排序

8.5.1 归并排序

8.5.2 基数排序

8.5.3 习题精编

8.5.4 真题演练

8.6 各种内部排序算法总结

8.6.1 内部排序算法对比

8.6.2 内部排序算法按特点分类

8.6.3 习题精编

8.6.4 真题演练

8.7 外部排序

8.7.1 外部排序的基本方法

8.7.2 多路平衡归并与败者树

8.7.3 置换-选择排序

8.7.4 最佳归并树

8.7.5 习题精编

8.7.6 真题演练

8.8 本章总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/920811.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/920811.shtml
英文地址,请注明出处:http://en.pswp.cn/news/920811.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学Python自动化】 5. Python 数据结构学习笔记

一、 列表详解 1 列表方法总结方法描述等价操作rust Vec类似操作list.append(x)末尾添加元素a[len(a):] [x]vec.push(x);list.extend(iterable)扩展列表a[len(a):] iterablevec.extend([4, 5, 6]); 或者更高效:vec.extend_from_slice(&[4, 5, 6]);list.inser…

Python爬虫实战:研究Radar chart,构建多维度数据采集和分析系统

1. 引言 1.1 研究背景与意义 在信息爆炸的时代,互联网蕴含的海量数据已成为企业决策、学术研究和产品评估的重要依据。这些数据往往包含多个维度的特征,如电商平台的商品信息涵盖价格、销量、评价、性能参数等,社交媒体的用户数据涉及活跃度、互动量、内容偏好等。传统的单…

[灵动微电子 MM32BIN560CN MM32SPIN0280]读懂电机MCU之串口DMA

在 MM32SPIN560C 微控制器中,串口(UART)的 DMA 传输可大幅减轻 CPU 负担,实现数据的“自动收发”。结合《MM32SPIN560C 用户手册(中文版)》中 UART 和 DMA 相关章节,以下从“原理匹配”“配置步…

【机器学习】-torch相关知识01

学习代码时遇到的问题,GPT给的答案,如有错误请指出。 问题1 torch.empty nn.init.xavier 问题2 nn.Parameter 是什么? 问题3 self.add_module 问题4 torch.matmul torch.mm 文章目录问题1 torch.empty nn.init.xavier问题2 nn.Parameter 是什…

Hutool DsFactory多数据源切换

一、简单上手&#xff1a;从配置到使用全流程 DsFactory 的核心优势是零侵入配置&#xff0c;支持多种配置方式&#xff0c;不管是 properties 文件还是代码里直接定义&#xff0c;都能快速初始化数据源。先引依赖&#xff08;Maven&#xff09;&#xff1a; <dependency>…

Mysql中事务隔离级别有哪些?

Mysql中事务隔离级别有哪些&#xff1f; 读未提交&#xff1a; 一个事务可以看到另一个事务尚未提交的数据。可能导致脏读。 读已提交&#xff1a; 一个事务只能看到其他事务提交后的数据。避免了脏读&#xff0c;仍可能引发不可重复读。 可重复读&#xff1a; 可以确保一个事务…

el-carousel在新增或者删除el-carousel-item时默认跳到第一页的原因和解决

现象 使用走马灯效果时 当el-carousel-item增加或者减少时&#xff0c;页会跳到第一页 体验很不友好。 原因 当新增或这删除el-carousel-item时&#xff0c;会触发setActiveIndex&#xff08;props.initialindex&#xff09;, setActiveIndex的行为是小于0或者大于最大页会有一…

人工智能学习:机器学习相关面试题(二)

7、有监督学习和无监督学习的区别 有监督学习&#xff1a; 对具有概念标记&#xff08;分类&#xff09;的训练样本进行 学习&#xff0c;以尽可能对训练样本集外的数据进行 标记&#xff08;分类&#xff09;预测。 这里 &#xff0c;所有的标记&#xff08;分类&#xff09…

python如何下载svg图片

# 生成博客文章框架代码 import datetimeblog_content f"""# Python如何下载SVG图片## 引言 SVG&#xff08;可缩放矢量图形&#xff09;作为一种基于XML的矢量图形格式&#xff0c;在Web开发中广泛应用。本文将介绍如何使用Python从网络下载SVG图片&#xff0…

Linux(一) | 初识Linux与目录管理基础命令掌握

个人主页-爱因斯晨 文章专栏-Linux 最近学习人工智能时遇到一个好用的网站分享给大家&#xff1a; 人工智能学习 文章目录个人主页-爱因斯晨文章专栏-Linux一、前言1.为什么学习Linux2.操作系统概述&#xff1a;3.常见的操作系统&#xff1a;二、初识Linux1.诞生2.什么是Linux…

android-studio 安装

下载地址 国内&#xff1a;https://developer.android.google.cn/studio?hlzh-cn 全国&#xff1a;https://developer.android.com/studio 1.设置 ANDROID_HOME 环境变量 ANDROID_HOME D:\zhy\android-studio\sdk 2. 更新 PATH 环境变量 %ANDROID_HOME%\platform-tools %AN…

【重学MySQL】九十三、MySQL字符集与比较规则完全解析

【重学MySQL】九十三、MySQL字符集与比较规则完全解析一、字符集概述1.1 支持的字符集1.2 UTF8与UTF8MB4的区别二、比较规则&#xff08;Collation&#xff09;2.1 比较规则分类2.2 常见比较规则差异三、配置层级与继承关系3.1 配置层级3.2 继承关系四、最佳实践与问题解决4.1 …

基于Kafka的延迟队列

实现原理 通过topic区分不同的延迟时长&#xff0c;每个topic对于一个延迟&#xff0c;比如 topic100 仅存储延迟 100ms 的消息&#xff0c;topic1000 仅存储延迟 1s 的消息&#xff0c;依次类推。生产消息时&#xff0c;消息需按延迟时长投递到对应的topic。消费消息时&#x…

LabVIEW转速仪校准系统

LabVIEW 与机器视觉的智能校准系统以工控机为核心&#xff0c;整合标准源、智能相机等硬件&#xff0c;通过软件实现校准流程自动化&#xff0c;支持 500-6000r/min 转速范围校准&#xff0c;覆盖 5 类转速测量仪&#xff0c;校准时间缩短约 70%&#xff0c;满足计量院高效、精…

Synchronized 概述

1. 初识 synchronized 是 Java 中的关键字&#xff0c;是一种 同步锁 &#xff0c;可重入锁&#xff0c;悲观锁。它修饰的对象有以下几种&#xff1a; 具体表现为以下3种形式。 对于普通同步方法&#xff0c;锁是当前实例对象。 对于静态同步方法&#xff0c;锁是当前类的 Clas…

通过Auth.log来查看VPS服务器是否被扫描和暴力破解及解决办法

说明&#xff1a;很多人vps可能出现过被扫的情况&#xff0c;有的还被爆破了&#xff0c;这里提供下查看方法 查看用密码登陆成功的IP地址及次数grep "Accepted password for root" /var/log/auth.log | awk {print $11} | sort | uniq -c | sort -nr | more查看用密…

碰一碰发视频手机版源码开发:支持OEM

**从事开发 20 年&#xff0c;见过不少技术风口起起落落&#xff0c;最近 “碰一碰发视频” 又成了热门话题。不少同行或刚入行的年轻人来问我&#xff0c;手机版源码开发该从哪下手&#xff0c;怕踩坑、怕走弯路。今天就以一个老程序员的视角&#xff0c;把碰一碰发视频手机版…

只出现一次的数字(总结)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、给定一个整数数组nums&#xff0c;除了某个元素只出现一次以外&#xff0c;其余元素均出现两次。找出那个只出现一次的元素二、给你一个整数数组nums&#x…

Cesium 入门教程(十一):Camera相机功能展示

文章目录一&#xff0c;Cesium 实际示例&#xff08;含源代码&#xff09;1&#xff0c;vuecesium&#xff1a; 围绕一个固定点自动左右旋转2&#xff0c;vuecesium&#xff1a; flyto一个具体的实体位置3&#xff0c;vuecesium&#xff1a; flyto一个具体的点位置4&#xff0c…

go语言基本排序算法

package mainimport "fmt"func main() {BubbleSort()SelectSort()InsertSort()MergeSort()QuickSort()HeapSort()ShellSort() }//冒泡排序 func BubbleSort() {str : []int{9, 1, 5, 8, 3, 7, 4, 6, 2}for i : 0; i < len(str)-1; i {flag : falsefor j : len(str…