文章中的部分照片来源于哔站
黑马程序员阿伟老师
处,仅用学习,无商用,侵权联系删除!
概况
选择排序是一种简单直观的排序算法,它的思想是每次从未排序的部分中选择最小(或最大)的元素,并将其放到已排序部分的末尾。通过重复这个过程,直到整个数组排序完成。
选择排序的时间复杂度是O(n^2),其中n是数组的长度。与冒泡排序相比,选择排序的交换操作更少,因此在实际应用中可能稍微快一些。然而,选择排序每次只找到一个最小值(或最大值),并将其放到正确的位置,因此在大规模数据排序时,选择排序的效率仍然相对较低。
步骤
选择排序的实现步骤如下:
- 遍历数组,将第一个元素作为已排序部分,将其标记为最小(或最大)值。
- 在未排序部分中找到最小(或最大)值,将其与已排序部分的末尾交换位置。
- 确定下一个要排序的元素,将已排序部分增加一个元素。
- 重复步骤2和步骤3,直到整个数组排序完成。
代码示例
需求:将数组中的数据进行排序,数据如下:{2, 7, 9, 4, 5, 6, 10, 3, 8, 1};
例如:
package text.text02;
/*
选择排序:(先确定小的,再确定大的)
1,从0索引开始,跟后面的元素一一比较。
2,小的放前面,大的放后面。
3,第一次循环结束后,最小的数据已经确定。
4,第二次循环从1索引开始以此类推。
*/