专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 数据结构排序方法

数据结构排序方法

更新时间:2021-10-08 11:01:15 来源:动力节点 浏览1103次

排序是指以特定格式排列数据。排序算法指定以特定顺序排列数据的方式。最常见的顺序是数字或字典顺序。

排序的重要性在于,如果数据以排序方式存储,则可以将数据搜索优化到非常高的水平。排序还用于以更易读的格式表示数据。以下是一些在现实生活场景中排序的例子 -

电话簿- 电话簿存储按姓名排序的人的电话号码,以便可以轻松搜索姓名。

字典- 字典按字母顺序存储单词,以便搜索任何单词变得容易。

就地排序和非就地排序

排序算法可能需要一些额外的空间来比较和临时存储少数数据元素。这些算法不需要任何额外的空间,并且排序被称为就地发生,或者例如在数组本身内发生。这称为就地排序。冒泡排序是就地排序的一个例子。

但是,在某些排序算法中,程序需要大于或等于被排序元素的空间。使用相等或更多空间的排序称为非就地排序。合并排序是非就地排序的一个例子。

稳定和不稳定排序

如果排序算法在对内容进行排序后,不改变它们出现的相似内容的顺序,则称为稳定排序。

如果排序算法在对内容进行排序后,改变了它们出现的相似内容的顺序,则称为不稳定排序。

当我们希望保持原始元素的序列时,算法的稳定性很重要,例如在元组中。

自适应和非自适应排序算法

如果排序算法利用要排序的列表中已经“排序”的元素,则称该排序算法是自适应的。也就是说,如果源列表中的某些元素已经排序,则在排序时,自适应算法会考虑到这一点,并尽量不重新排序它们。

非自适应算法是一种不考虑已经排序的元素的算法。他们试图强制每个元素重新排序以确认它们的排序。

重要条款

在讨论排序技术时通常会创造一些术语,这里是对它们的简要介绍 -

递增顺序

如果连续元素大于前一个元素,则称一系列值按递增顺序排列。例如,1、3、4、6、8、9 的顺序是递增的,因为每个下一个元素都大于前一个元素。

降序

如果连续元素小于当前元素,则称一系列值按降序排列。例如,9、8、6、4、3、1 是按降序排列的,因为每个下一个元素都小于前一个元素。

非增序

如果连续元素小于或等于序列中的前一个元素,则称该值序列为非递增顺序。当序列包含重复值时会出现此顺序。例如,9、8、6、3、3、1 是非递增顺序,因为每个下一个元素都小于或等于(在 3 的情况下)但不大于任何前一个元素。

非减序

如果连续元素大于或等于序列中的前一个元素,则称该值序列为非递减顺序。当序列包含重复值时会出现此顺序。例如,1、3、3、6、8、9 是非递减顺序,因为每个下一个元素都大于或等于(在 3 的情况下)但不小于前一个元素。

更多相关知识就在动力节点数据结构教程,感兴趣的小伙伴可以关注一下哦,希望对大家的学习能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>