更新时间:2021-10-08 11:01:15 来源:极悦 浏览1201次
排序是指以特定格式排列数据。排序算法指定以特定顺序排列数据的方式。最常见的顺序是数字或字典顺序。
排序的重要性在于,如果数据以排序方式存储,则可以将数据搜索优化到非常高的水平。排序还用于以更易读的格式表示数据。以下是一些在现实生活场景中排序的例子 -
电话簿- 电话簿存储按姓名排序的人的电话号码,以便可以轻松搜索姓名。
字典- 字典按字母顺序存储单词,以便搜索任何单词变得容易。
排序算法可能需要一些额外的空间来比较和临时存储少数数据元素。这些算法不需要任何额外的空间,并且排序被称为就地发生,或者例如在数组本身内发生。这称为就地排序。冒泡排序是就地排序的一个例子。
但是,在某些排序算法中,程序需要大于或等于被排序元素的空间。使用相等或更多空间的排序称为非就地排序。合并排序是非就地排序的一个例子。
如果排序算法在对内容进行排序后,不改变它们出现的相似内容的顺序,则称为稳定排序。
如果排序算法在对内容进行排序后,改变了它们出现的相似内容的顺序,则称为不稳定排序。
当我们希望保持原始元素的序列时,算法的稳定性很重要,例如在元组中。
如果排序算法利用要排序的列表中已经“排序”的元素,则称该排序算法是自适应的。也就是说,如果源列表中的某些元素已经排序,则在排序时,自适应算法会考虑到这一点,并尽量不重新排序它们。
非自适应算法是一种不考虑已经排序的元素的算法。他们试图强制每个元素重新排序以确认它们的排序。
在讨论排序技术时通常会创造一些术语,这里是对它们的简要介绍 -
如果连续元素大于前一个元素,则称一系列值按递增顺序排列。例如,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 的情况下)但不小于前一个元素。
更多相关知识就在极悦数据结构教程,感兴趣的小伙伴可以关注一下哦,希望对大家的学习能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习