关键区别-**排序与选择排序
**排序和选择排序是两种排序算法,用于对一组数据进行排序。有时有必要按特定顺序排列数据。排序算法是对一组数据进行排序的机制。在排序中,数据是按照数字或字典顺序排列的。如果数据被正确地排序,那么很容易更快地搜索数据。如果电话簿中的电话号码不是按顺序排列的,那么就很难找到具体的电话号码。同样地,如果字典里的单词不是按字母顺序排列的,那么很难找到单词。因此,分类在日常生活中是有用的。在计算机科学中,有排序算法对一组数据进行排序。这两种算法是**排序和选择排序。**排序是通过逐个移动元素对数组进行排序的排序算法。选择排序是在数组中找到最小的元素并与第一个位置交换元素,然后找到第二个最小元素并与第二个位置的元素交换,然后继续这个过程直到整个数组被排序。**排序和选择排序的关键区别在于**排序一次比较两个元素,而选择排序则从整个数组中选择最小的元素并对其排序。
目录
1. 概述和主要区别
2. 什么是**排序
3. 什么是选择排序
4. **排序和选择排序的相似性
5. 并排比较-**排序与表格形式的选择排序
6. 摘要
什么是**排序(insertion sort)?
**排序是一种基于就地比较的排序算法。该方法是一步一步搜索数组。未排序的项将被移动并**数组的已排序子列表中。**排序算法可以用下面的例子来解释。
例如,将初始数组设为77,33,44,11,88。在这种排序算法中,第一步是选择当前元素。
当前元素为77。当前元素与左侧的所有元素进行比较。77是第一个元素,左侧没有元素。当前位置的索引为0。
然后,当前位置的索引将增加1。现在索引是1,当前元素是33。与左侧的元素比较时,它小于77。然后,这两个值都被交换。现在33在索引0中,77在索引X1中。
现在数组是33,77,44,11,88。
同样,索引是递增的。索引为2,当前元素为44。它与左侧的元素进行比较。44小于77。所以这两个值是交换的。现在数组是33,44,77,11,88。有必要比较左边的所有元素。所以,44和33相比。33比44小。所以这些元素不需要交换。
现在数组是33,44,77,11,88。
同样,索引是递增的。索引为3,当前元素为11。它与左边的所有元素进行比较。11小于77,所以这两个被交换了。现在数组是33,44,11,77,88。比较11和44时,11小于44。所以这两个是交换的。现在数组是33,11,44,77,88。同样,11与33相比。11小于33,所以这两个值被交换。
现在数组是11,33,44,77,88。
递增索引将使索引变为4。值是88。它高于77。所以,没有必要交换。最后,排序后的数组是11,33,44,77,88。
**排序的实现如上所示。初始数组为77,33,44,11,88。排序后,输出11,33,44,77,88。
什么是选择排序(selection sort)?
选择排序是一种基于就地比较的排序算法。数组被分成若干部分。排序的部分在左端。未排序的部分在右端。首先应该找到最小的值。然后与左元素交换。现在元素在排序数组中。此过程继续将未排序的数组边界从一个元素向右移动。选择排序算法可以用下面的例子来解释。
例如,将初始数组设置为77,33,44,11,88,22。在这个排序算法中,找到数组中最小的。最小的元素是11。它与数组的0索引中的元素交换。
现在数组是11,33,44,77,88,22。
最小的元素在索引0中,因此11现在被排序。其余元素中最小的22个。它与第一个索引元素交换。
现在数组是11,22,44,77,88,33。
元素11和22已经排序。其余的最小值是33。它与第二个索引元素交换。
现在数组是11,22,33,77,88,44。
元素11、22和33已经排序。其余的最小值是44。它与第三个索引元素交换。
现在数组是11,22,33,44,88,66。
元素11、22、33、44已经排序。其余的元素是88和66。元素66与第4个索引元素交换。
现在数组是11,22,33,44,66,88。
它是使用选择排序算法排序的数组。
**排序的实现如上所示。初始数组为77,33,44,11,88。排序后,输出11,33,44,77,88。
什么是**排序与选择排序的相似性(the similarity between insertion sort and selection sort)?
- **排序和选择排序都是排序算法。
**排序(insertion sort)和选择排序(selection sort)的区别
**排序与选择排序 | |
**排序是通过逐个移动元素对数组进行排序的排序算法。 | 选择排序是在数组中找到最小的元素并与第一个位置交换元素,然后找到第二个最小元素并与第二个位置的元素交换,然后继续这个过程直到整个数组被排序。 |
过程 | |
**排序是通过比较两个元素对子列表进行排序,直到整个数组被排序为止。 | 选择排序选择最小元素并将其与第一个位置交换,再次为其余位置选择最小值并将其交换到第二个位置并继续此过程直到结束。 |
稳定性 | |
**排序是一种稳定的排序算法。 | 选择排序不是一个稳定的排序算法。 |
总结 - **排序(insertion sort) vs. 选择排序(selection sort)
有时需要对数据进行排序。在计算机科学中,有分类数据的算法。本文讨论了**排序和选择排序两种排序算法。**排序是通过逐个移动元素对数组进行排序的排序算法。选择排序是在数组中找到最小的元素并与第一个位置交换元素,然后找到第二个最小元素并与第二个位置的元素交换,然后继续这个过程直到整个数组被排序。**排序和选择排序的区别在于**排序一次比较两个元素,而选择排序则从整个数组中选择最小的元素并对其排序。
下载**排序与选择排序的pdf文件
你可以下载这篇文章的PDF版本,并根据引文说明离线使用。请在这里下载PDF版本:**排序和选择排序的区别