Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 61.9MB ·虚拟内存 1301.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
选择排序是一种简单的排序算法。这种排序算法是一种就地比较算法,其中列表分为两部分,左端的排序部分和右端的未排序部分。最初,排序部分为空,未排序部分为整个列表。
最小元素从未排序数组中选择,并与最左边的元素交换,该元素成为排序数组的一部分。此过程继续将未排序的数组边界向右移动一个元素。
该算法不适用于大数据集,因为其平均和最差情况复杂度为0(n 2),其中 n 是项目数。
以下面描述的数组为例。
对于排序列表中的第一个位置,将按顺序扫描整个列表。当前存储14的第一个位置,我们搜索整个列表并发现10是最低值。
所以我们用10代替14.在一次迭代10之后,恰好是列表中的最小值,出现在排序列表的第一个位置。
对于存在33的第二个位置,我们开始以线性方式扫描列表的其余部分。
我们发现14是列表中第二低的值,它应该出现在第二位。我们交换这些值。
在两次迭代之后,两个最小值以排序的方式位于开头。
相同的过程应用于数组中的其余项。
以下是整个分拣过程的图示 -
现在,让我们学习一些选择排序的编程方面。
**Step 1** − Set MIN to location 0 **Step 2** − Search the minimum element in the list **Step 3** − Swap with value at location MIN **Step 4** − Increment MIN to point to next element **Step 5** − Repeat until list is sorted
procedure selection sort list : array of items n : size of list for i = 1 to n - 1 /* set current element as minimum*/ min = i /* check the element to be minimum */ for j = i+1 to n if list[j] < list[min] then min = j; end if end for /* swap the minimum element with the current element*/ if indexMin != i then swap list[min] and list[i] end if end for end procedure
合并排序是一种基于分而治之技术的排序技术。在最坏情况下的时间复杂度为0(n log n)时,它是最受尊敬的算法之一。合并排序首先将数组分成相等的一半,然后以排序的方式组合它们。 合并排序如何工作?要理解合并排序 ...