软考29-上午题-【数据结构】-排序

news2024/9/21 20:33:11

一、排序的基本概念

1-1、稳定性

稳定性指的是相同的数据所在的位置经过排序后是否发生变化。若是排序后,次序不变,则是稳定的。

1-2、归位

每一趟排序能确定一个元素的最终位置。

1-3、内部排序

排序记录全部存放在内存中进行排序的过程。

1-4、外部排序

待排序记录的数量很大,以至于内存不能容纳全部记录,在排序过程中尚需对外存进行访问的排序过程。

1-5、排序小结(要背)

比较最好时间复杂度,会发现,当待排序的序列基本有序的话,适合采用:

  • 直接插入排序
  • 希尔排序
  • 冒泡排序 

二、直接插入排序

稳定的 

不归位

三、希尔排序

直接插入排序的改进。

基本思想:现将整个待排记录序列分割成若干子序列,然后分别进行直接插入排序;待整个序列中的记录基本有序的时候,再对全体记录进行一次直接插入排序。

示例:

不稳定

不归位 

四、真题1

真题1:

真题2:

 真题3:

真题4:

五、简单选择排序

算法思想:从待排数组中找到最小值,再将最小值与已排好序的数组后一位进行交换。

归位

不稳定 

六、堆排序(简单了解) 

示例:

此时,根元素80是最大的元素,将根元素80和队列最后一个元素10交换,并将80脱离当前序列(归位),此时,新的二叉树不满足大顶堆的规则,则继续调整。

每次调整完得到的根节点都是当前序列的最大元素!!!

归位

不稳定

七、真题2

真题1:

 

真题2:

八、冒泡排序

基本思想:相邻两个元素,俩俩交换。

稳定

归位 

九、快速排序

快速排序首先选择了一个基准值,然后分别选择两个指针在数组中一个找大,一个找小,然后进行交换。

通过一趟排序将待排序的记录以基准值为分界,分为独立的两个部分,称为前半区和后半区;前半区均小于基准值,后半区均大于基准值。

然后再分别对这两个部分在进行快速排序,从而使得整个序列有序。

分治:分而治之。

归位

不稳定!!! 

纠错:空间时间复杂度是:O(log2n); 

十、真题2

真题1:

真题2:

真题3:

真题4:

十一、归并排序

示例:

 

设计方法:分治法

不归并

稳定

11-1、真题

真题1:

真题2:

 真题3:

真题4:

真题5:

真题6:

十二、排序小结

12-1、简单排序

1、直接插入排序(稳定)

2、冒泡排序(稳定)

3、简单选择排序(不稳定)

时间复杂度都是:O(n^2)

空间复杂度:O(1)

12-2、希尔排序(不稳定)

时间复杂度:O(n^1.3)

空间复杂度:O(1)

12-3、快速排序(不稳定)

分治思想

时间复杂度:O(nlog2n)——性能最好

空间时间复杂度:O(log2n)

但是,当待排序列基本有序的时候,是最坏的情况,时间复杂度退化为:O(n^2)

12-4、堆排序(不稳定)

时间复杂度:O(nlog2n)

空间时间复杂度:O(1)

12-5、归并排序(稳定)

俩俩归并,n/2向上取整

整个归并排序,需要进行log2n趟(向上取整)

空间复杂度:O(n)

时间复杂度:O(nlogn)

12-6、小结-稳定的排序

  • 直接插入排序;
  • 冒泡排序
  • 归并排序

12-7、真题

真题1:

真题2:

真题3:

直接插入排序:局部有序

冒泡:每一趟排序,都将最大的泡泡在最后的位置。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TF-A之供应链威胁模型分析

目录 一、简介 二、TF-A 概述 2.1、TF-A 存储库 2.2、外部依赖 2.3、附加二进制文件 2.4、TF-A工具链 2.5、基础设施 三、TF-A数据流 四、攻击树 五、威胁评估与缓解 5.1、影响和可能性评级 5.2、威胁和缓解措施 六、附录 一、简介 软件供应链攻击旨在向软件产品…

《深入浅出 Spring Boot 3.x》预计3月份发版

各位,目前本来新书《深入浅出 Spring Boot 3.x》已经到了最后编辑排版阶段,即将在3月份发布。 目录: 现在把目录截取给大家: 主要内容: 本书内容安排如下。 ● 第 1 章和第 2 章讲解 Spring Boot 和传统 Spri…

IT资讯——全速推进“AI+鸿蒙”战略布局!

文章目录 每日一句正能量前言坚持长期研发投入全速推进“AI鸿蒙”战略 人才战略新章落地持续加码核心技术生态建设 后记 每日一句正能量 人总要咽下一些委屈,然后一字不提的擦干眼泪往前走,没有人能像白纸一样没有故事,成长的代价就是失去原来…

【东京都立大学主办多重会议奖项】第六届计算机通信与互联网国际会议

ICCCI 2024 - Hosted by Tokyo Metropolitan University, Japanhttps://www.iccci.org/ 会议简介 第六届计算机通信与互联网国际会议将于2024年6月14-16日在日本东京都立大学举行。ICCCI 2024由东京都立大学主办,华中师范大学和美国科学工程学会联合赞助、并得到了…

Curfew e-Pass 管理系统存在Sql注入漏洞 附源代码

免责声明:本文所涉及的信息安全技术知识仅供参考和学习之用,并不构成任何明示或暗示的保证。读者在使用本文提供的信息时,应自行判断其适用性,并承担由此产生的一切风险和责任。本文作者对于读者基于本文内容所做出的任何行为或决…

使用备份工具xtrabackup进行增量备份详细讲解

增量备份 第一次修改数据 mysql> insert into tb_user values (4,sxx,0); Query OK, 1 row affected (0.01 sec)mysql> select * from tb_user; ------------------- | id | name | sex | ------------------- | 1 | Tom | 1 | | 2 | Trigger | 0 | | …

深入学习TS的高阶语法(泛型、类型检测、内置工具)

文章目录 概要一.TS的类型检测1.鸭子类型2.严格的字面量类型检测 二.TS的泛型1.基本使用2.传递多个参数3.泛型接口4.泛型类5.泛型约束6.映射类型(了解) 三.TS的知识扩展1.模块的使用-- 内置类型导入 2.类型的查找3.第三方库的类型导入4.declare 声明文件…

深度学习中的样本分类:如何区分正样本、负样本、困难样本和简单样本?

深度学习中的样本分类:如何区分正样本、负样本、困难样本和简单样本? 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入…

思维导图教你工作日报怎么写?

工作日报撰写秘诀:轻松提升效率,让你的每一天都闪闪发光 在快节奏的现代工作中,如何高效地规划和管理工作任务成为了职场人士必须面对的挑战。思维导图作为一种强大的思维工具,正逐渐受到越来越多人的青睐。本文将探讨为什么使用…

MySQL 索引原理以及 SQL 优化

索引 索引:一种有序的存储结构,按照单个或者多个列的值进行排序。索引的目的:提升搜索效率。索引分类: 数据结构 B 树索引(映射的是磁盘数据)hash 索引(快速锁定内存数据)全文索引 …

opencv的图像上下、左右和对角线翻转—flip函数

在OpenCV中,flip函数用于翻转图像。你可以沿x轴、y轴或两者同时翻转图像。这个函数非常直接,可以用于创建镜像图像或旋转图像。 void flip(InputArray src, OutputArray dst, int flipCode);src:输入图像。 dst:翻转后的输出图像…

安卓系统和iOS系统的手机备忘录同步数据方法

在这个智能手机时代,安卓与iOS系统犹如两位王者,各自拥有庞大的用户群体。有人钟情于安卓的开放与多样,有人偏爱iOS的流畅与稳定。甚至,有些人为了满足不同需求,同时使用着两个系统的手机。我就是其中的一员。 工作中…

ELK 简介安装

1、概念介绍 日志介绍 日志就是程序产生的,遵循一定格式(通常包含时间戳)的文本数据。 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 日志…

RAW 编程接口 TCP 简介

一、LWIP 中 中 RAW API 编程接口中与 TCP 相关的函数 二、LWIP TCP RAW API 函数 三、LwIP_Periodic_Handle函数 LwIP_Periodic_Handle 函数是一个必须被无限循环调用的 LwIP支持函数,一般在 main函数的无限循环中调用,主要功能是为 LwIP各个模块提供…

LeetCode | 整数反转 C语言

Problem: 7. 整数反转 文章目录 思路解题方法Code结果 思路 运算部分 while(x > 0) {y x % 10;y * 10;x / 10; } y / 10;对于大于32位的数要用long int类型的变量保存用pow算-2的31次方和2的31次方-1。 解题方法 由思路得 Code int reverse(long int x){long int y …

bat 查找文件所在

脚本 在批处理文件(.bat)中查找文件所在的目录,你可以使用dir命令结合循环和条件语句来实现。以下是一个简单的示例,演示如何在批处理文件中查找指定文件并输出其所在目录: echo off setlocal enabledelayedexpansio…

预训练大模型LLM的PEFT之——LORA

简介 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS,直接翻译过来就是大模型的低秩适配 2021年微软提出的LoRA,它的灵感来自于 Li和 Aghajanyan等人的一些关于内在维度(intrinsic dimension)的发现:模型是过参…

[HTML]Web前端开发技术27(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

大型语言模型的语义搜索(一):关键词搜索

关键词搜索(Keyword Search)是文本搜索种一种常用的技术,很多知名的应用app比如Spotify、YouTube 或 Google map等都会使用关键词搜索的算法来实现用户的搜索任务,关键词搜索是构建搜索系统最常用的方法,最常用的搜索算法是Okapi BM25&#x…

post请求向服务器发送JSON格式数据设置Content-Type

情景:与后台联调接口时,后台要求传递JSON格式的数据。 处理:我们进行XHR请求时需要设置请求头的Content-Type值为application/json,如下图所示。 浏览器查看具体请求与参数格式(形式)如下: