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

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



前言

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

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

推荐博客:http://t.csdnimg.cn/5VzY5
推荐bilibli博主:zst_2001

由于本人从事软件开发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];

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

不稳定排序:快选希堆(快速排序,选择排序,希尔排序,堆排序)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

练习两年半的攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值