软件设计师全套备考系列文章8 -- 查找、排序

news2025/1/20 5:58:07

软考-- 软件设计师(8)-- 查找、排序


文章目录

  • 软考-- 软件设计师(8)-- 查找、排序
  • 前言
  • 一、查找
  • 二、排序
  • 三、排序的评价指标(重点)


前言

考试时间:每年5月、11月,软件设计师每年都会开考。
考试条件:三不限
考试形式: 一共两门
	上午--计算机于软件工程基本知识--150分钟--笔试--选择题--75分(45及格)
	下午--软件设计--150分钟--笔试--简答题(4道必做,1道二选一做)--75分(45及格)
	两门都得一次性及格才算通过。

软件行业从事人员学习视频:https://www.bilibili.com/video/BV1Qc411G7fB?vd_source=d82c92f6c1fd8c6785c6b557a68cb7b3

其他行业学习视频:https://www.bilibili.com/video/BV1LcYyeoEa5?vd_source=d82c92f6c1fd8c6785c6b557a68cb7b3

由于本人从事软件开发4年,有一定的基础,所以本系列博客笔记皆从于第一个视频记录笔记。

一、查找

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、排序

基本概念

排序:重新排列表中的元素,使表中的元素满足按关键字有序的过程。
排序分为:稳定排序 和 不稳定排序(重要),内部排序 和 外部排序(不重要)
	ex:21()3213452721(),有以上一排数据,如果经过排序算法A排序后,21()仍然在21()之前,则算法A为稳定排序
	,否则算法A为不稳定排序。

在这里插入图片描述
在这里插入图片描述

希尔排序:
	增量d生成的规则,d1=n/2,d2=d1/2,d3=d2/2...能直接除尽则直接取,除不尽取奇数。ex:10/2=5,取55/2=2.5,取33/2=1.51

下图解析:
1、d1=n/2=5,增量为5,则5728对比,57>28,则5728互换位置。6896对比,68<96,则不用互换。重复下去得到第二列数据。
2、d2=d1/2=2.5,取最近的奇数,的d2=3,则第二列数据中,以28开始增量为3的数据为:28249672,将其排序并且插入到相应位置,
得到数据:24683328195772595296。第二列数据中以68开始增量为3的数据为:681959,将其排序并且插入到相应
位置,得到数据:24193328595772685296。第二列数据中以33开始增量为3的数据为:335752,将其排序并且插入
到相应位置,得到数据:24193328595272685796。得到第三列数据。
3、d3=d2/2=1.5,取最近的奇数,的d3=1,则第三列数据以增量为1,互相比较,若 前面 > 后面 则互换位置。

在这里插入图片描述

在这里插入图片描述

快速排序:
	取首元素作为枢纽pivot,其他元素和pivot对比,小于pivot的放于pivot左边,大于pivot的放于右边。一次操作后对pivot两边的数据
	重复递归此操作,直到排序全部完成。
	其实真正的操作是指针的互换,但是我们应试,直接理解成这样就可以了。
	
	ex:下图中,取57作为pivot,小于57放左边,大于57的放右边。一次操作后得到[19 24 33 52 28] 57 [96 72 59 68],再分别对两边
	的[19 24 33 52 28][96 72 59 68]重复此操作,直到排序结束。

在这里插入图片描述

在这里插入图片描述

堆排序:
	小顶堆:堆顶位置的数据永远都是最小的数据,且各个子树的根节点 都小于 其叶子节点;
	大顶堆:堆顶位置的数据永远都是最大的数据,且各个子树的根节点 都大于 其叶子节点。

在这里插入图片描述

堆排序ex:
1.1:初始化建立堆;
1.2:从叶子节点的子树向上推,所以图1.2中,5808最大,则交换58的位置;
1.3:从叶子节点的子树向上推,所以图1.3中,2466最大,则交换46的位置;
1.4:继续推左子树,发现左子树接下来需要比较的树值为387,其中8最大,则交换38的位置;
1.5:经过1.4的操作后发现,左叶子节点最小子树350不满足大顶堆条件了,则需要对其重新排列,比较350,其中5最大,则交换
	35的位置;
1.6:现在发现左子树 和 右子树都满足大顶堆条件。只有根节点不满足。比较最大子树186,其中8最大,则交换18的位置;
1.7:经过1.4的操作后发现,左子树157不满足大顶堆条件了,则需要对其重新排列,比较157,其中7最大,则交换
	17的位置;
发现整个树各个子树都满足大顶堆条件,堆排序完成。

在这里插入图片描述

归并排序:把两个 或 多个已经**有序**的序列合并
ex:
1、合并[57 68][52 59][28 72][33 96] ,得到两个有序序列[52 57 59 68][28 33 72 96];
2、合并[52 57 59 68][28 33 72 96];

在这里插入图片描述

在这里插入图片描述

三、排序的评价指标(重点)

在这里插入图片描述

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

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

相关文章

湖南 | 产能利用率高达80%的龙头砼企如何进行站内外高效配合

走进标杆企业 走进标杆企业&#xff0c;感受名企力量&#xff0c;探寻学习优秀企业领先之道。本期要跟砼行们推介的标杆企业是湖南省新宁县鑫旺混凝土有限公司。 鑫旺混凝土有限公司成立于2012年&#xff0c;建有三条混凝土生产线&#xff0c;自有水泥、砂石骨料、房地产等一…

vue3 中 defineProps 和 defineEmits

在 Vue 3 中&#xff0c;defineProps 和 defineEmits 是组合式 API 的核心功能&#xff0c;用于处理父子组件之间的传值和事件通信。 1. defineProps defineProps 用于定义并接收父组件传递过来的数据&#xff08;props&#xff09;。它是在子组件中使用的&#xff0c;接收的…

100000在银行存个3年利息居然12000

python存款利息问题 设计一个函数来计算存款利息。存款利息由存款金额和存款时间决定。 如果存款金额小于或等于5000元&#xff0c;则年利率为2%;5000元到10000元之间&#xff0c;则年利率为3%;大于10000元&#xff0c;则年利率为4%。返回本金和利息 def getMoney(amount,yea…

44.开发商购买土地

44.开发商购买土地 &#xff08;用到了前缀和的知识&#xff09; 题目链接 //卡码网题号44.开发商购买土地 #include<iostream> #include<vector> #include<climits> using namespace std;int main() {int n, m;int sum0;cin >> n >> m;vector…

stable-diffusion-webui容器构建教程

一、介绍 Stable Diffusion WebUI 是一个提供了易于使用的 AI 绘画工具&#xff0c;它允许用户通过一个更友好、可视化的网页界面来与 Stable Diffusion 模型互动&#xff0c;可以实现文生图、图生图等。 二、特点 易于使用的界面 &#xff1a;用户可以通过网页界面进行操作…

【数据同步】SeaTunnel初体验,5000字深入浅出带你用上Oracle-CDC

Apache SeaTunnel 是啥&#xff1f;下一代高性能、分布式、海量数据集成框架。支持上百个数据源、传输速度快、准确率高&#xff0c;丰富易扩展的连接器和插件化的连接器设计&#xff0c;能够更轻松的运行复杂的集成。是一个分布式、高性能的数据集成平台&#xff0c;用于数据迁…

USB Type-C如何取9V、12V、15V、20V电压-PD快充协议芯片ECP5701

相信大家在生活中也发现了&#xff0c;现在越来越多的设备都改用这种type-C接口的母座进行取电了。 因为欧盟决议 &#xff1a;自2024年起部分消费电子产品必须提供单一的USB-C充电接口。 那么这种type-C接口相比之前的Micro-B接口有着一个很大的优势就是可以有更高的电压&…

部署同步工具syncthing

1、下载包arm包&#xff08;根据自己的环境下载包&#xff09; #进到指定目录 cd /usr/local/ #可以根据自己的环境下载不同版本的包 wget https://github.com/syncthing/syncthing/releases/download/v1.27.10/syncthing-linux-arm64-v1.27.10.tar.gz2、进行部署 #将其解压 …

接口参数与文档||关于淘宝商品·订单数据API接口的功能达成经验分享

电商数据采集有5种方式&#xff0c;包括API、RPA、数据库连接、Excel下载和ERP等业务系统数据采集。这些方法可帮助卖家获取多平台电商数据&#xff0c;进行深度挖掘&#xff0c;实现电商运营的优化。 电商竞争白热化的今天&#xff0c;一个电商卖家往往会在多个平台铺设店铺来…

Flutter Web 正式官宣弃用 HTML renderer , Canvas 路线成为唯一

Flutter Web 团队计划在 2025 年的第一个 Flutter stable 版本中弃用 HTML renderer&#xff0c;当然在 master 和 beta 中会更早合并这一更改。 关于这个话题&#xff0c;其实在年初的我就曾发布过 《Flutter 即将放弃 Html renderer 》&#xff0c; Html renderer 从 2018 年…

狗都能看懂的Swin Transformer的讲解和代码实现

文章目录 1、Swin-Transformer介绍2、模型整体框架3、Patch Mergeing详解4、W-MSA模块详解MSA模块计算量W-MSA模块计算量 5、SW-MSA详解6、Relative Position Bias详解7、模型详细配置参数 1、Swin-Transformer介绍 自从ViT&#xff08;Vision Transformer&#xff09;出现之后…

腾讯软件测试岗二面:web 测试问题被虐哭了,直到学长给了我这些知识点.....

web 测试一直是大厂软件测试问到的一个重点&#xff0c;下面给大家展示下大厂关于web 测试经常会问到的一些问题&#xff0c;以及解析。看当面试官问到你这些问题的时候&#xff0c;你是否也能够对答如流。 web 测试面试真题及解析&#xff1a; 一&#xff0c;描述用浏览器访问…

SQL基础——函数与约束

声明&#xff1a;以下内容为根据黑马数据库视频教程&#xff0c;个人整理的笔记&#xff0c;方便记录学习。 SQL基础之函数与约束 知识导图案例SQL语句编写一、函数1.字符串函数2.数值函数3.日期函数4.流程函数 二、约束 知识导图 案例SQL语句编写 一、函数 1.字符串函数 A.…

用工业操作系统鸿道Intewell可以玩黑神话悟空吗?

黑神话悟空的爆火&#xff0c;让我想到&#xff0c;工业操作系统鸿道Intewell是否可以玩黑神话悟空&#xff1f; 鸿道Intewell操作系统是面向工业控制领域的操作系统&#xff0c;它支持实时和非实时应用在同一个硬件平台上运行&#xff0c;并且能够保留Windows开发环境的同时部…

平衡二叉树(AVLTree)

1.平衡二叉树的定义 1.1 什么是平衡二叉树 平衡二叉树&#xff0c;又称AVL树&#xff0c;用于解决二叉排序树高度不确定的情况&#xff0c;如果二叉排序树的子树间的高度相差太大&#xff0c;就会让二叉排序树操作的时间复杂度升级为O(n)&#xff0c;为了避免这一情况&#x…

mac 安装Arthas

mac安装有两种方式 1.第一步安装Arthas 第一种&#xff1a; curl -L https://arthas.aliyun.com/install.sh | sh 第二种jar包形式 curl -O https://arthas.aliyun.com/arthas-boot.jar个人比较推荐第一种因为运行测试成功了 第一种安装后可能会出现一些命令不符合 需…

NVIDIA刚刚发布了关于 AI 的免费在线课程!

英伟达最近上线了一批不错的免费课程&#xff0c;先收藏起来&#xff01; ps:有时候真想有一个收藏即学会的技能啊 数据中心中的人工智能 了解数据中心的 AI 基础知识&#xff0c;涵盖机器学习、深度学习、GPU 架构和部署。 了解多系统 AI 集群和基础设施规划。 课程地址&…

勇闯机器学习(第三关-特征工程)

以下内容皆为原创&#xff0c;制作不易&#xff0c;请帅锅、镁铝点点赞赞和关注吧❥(^_^) 一.提问环节 机器学习是什么&#xff1f; 机器学习就是通过自动分析大量数据去建立模型&#xff0c;训练模型&#xff0c;预测数据。 这么好记的概念&#xff0c;你应该记住了吧&#x…

多线程编程的拙见

一. 线程和进程的概念 1.为什么引入多线程编程&#xff1f; 在多线程&#xff08;Multithreaded&#xff0c;MT&#xff09;编程出现之前&#xff0c;电脑程序的运行由一个执行序列组成&#xff0c;执行序列按顺序在主机的中央处理器CPU中运行。即使整个程序由多个相互独立无…

基于Yolov5的安全帽检测系统设计与开发(论文+源码)_kaic

摘 要 安全帽检测系统的设计意义在于提高工作场所的安全性和生产效率&#xff0c;通过安全帽检测系统可以实时监控工人是否佩戴安全帽&#xff0c;及时发现不佩戴安全帽的工人并进行提醒和警示&#xff0c;避免因为不佩戴安全帽导致意外事故的发生。因此&#xff0c;本文是一个…