数据结构复习指导之插入排序(直接插入排序、折半插入排序、希尔排序)

文章目录

排序

考纲内容

知识框架

复习提示

1.排序的基本概念

1.1排序的定义

2.插入排序

2.1直接插入排序

2.2折半插入排序

2.3希尔排序

知识回顾 


排序

考纲内容

(一)排序的基本概念
(二)插入排序
           直接插入排序;折半插入排序;希尔排序(shell sort)
(三)交换排序
           冒泡排序(bubble sort);快速排序
(四)选择排序
           简单选择排序;堆排序
(五)二路归并排序(merge sort)
(六)基数排序
(七)外部排序
(八)排序算法的分析和应用

知识框架

复习提示

堆排序、快速排序和归并排序是本章的重难点。读者应深入掌握各种排序算法的思想、排序过程(能动手模拟)和特征(初态的影响、复杂度、稳定性、适用性等),通常以选择题的形式考查不同算法之间的对比。此外,对于一些常用排序算法的关键代码,要达到熟练编写的程度:看到某特定序列,读者应具有选择最优排序算法(根据排序算法特征)的能力。

1.排序的基本概念

1.1排序的定义

排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程。

为了查找方便,通常希望计算机中的表是按关键字有序的。排序的确切定义如下:

输入:n个记录 R₁ ,R₂,…,Rₙ,对应的关键字为k₁, k₂,…,kₙ

输出:输入序列的一个重排R₁' ,R₂',…,Rₙ',使得 k₁'≤k'₂≤…≤kₙ',(其中“≤”可以换成其他的比较大小的符号)。

算法的稳定性。若待排序表中有两个元素Rᵢ 和Rⱼ ,其对应的关键字相同,即 keyᵢ  =keyⱼ ,且在排序前 Rᵢ 在Rⱼ  的前面,若使用某一排序算法排序后,Rᵢ仍然在Rⱼ 的前面,则称这个排序算法是稳定的,否则称这个排序算法是不稳定的

需要注意的是,算法是否具有稳定性并不能衡量一个算法的优劣它主要是对算法的性质进行描述

若待排序表中的关键字不允许重复,排序结果是唯一的,则对于排序算法的选择,稳定与否无关紧要。

注意:对于不稳定的排序算法,只需举出一组关键字的实例,说明它的不稳定性即可

在排序过程中,根据数据元素是否完全存放在内存中,可将排序算法分为两类:

  • 内部排序,是指在排序期间元素全部存放在内存中的排序;
  • 外部排序,是指在排序期间元素无法全部同时存放在内存中,必须在排序的过程中根据要求不断地在内、外存之间移动的排序。

一般情况下,内部排序算法在执行过程中都要进行两种操作:比较和移

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心碎烤肠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值