目录
- 1.选择排序简介
- 2.图解选择排序算法
- 3.选择排序代码实现
1.选择排序简介
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。

2.图解选择排序算法
选择排序的基本思想如下:
第一次:从arr[0]~arr[n-1]中选取最小值,与arr[0]进行交换;
第二次:从arr[1]~arr[n-1]中选取最小值,与arr[1]进行交换;
第三次:从arr[2]~arr[n-1]中选取最小值,与arr[2]进行交换;
…
第 i 次:从arr[i]~arr[i-1]中选取最小值,与arr[i]进行交换;
总共通过n-1次,可以得到从小到大的有序序列。
以序列:{8, 3, 2, 1, 7, 4, 6, 5} 为例!分步骤图解如下:

思路说明:
1.在每趟排序时,都假定当前位置的元素为最小值,如果在遍历过程中发现有比当前位置元素还小的值,则替换最小值。(先将最小值记录,此趟遍历完成再替换)
2.选择排序一共有数组大小-1趟排序。
3.选择排序代码实现
import java.util.Arrays;
/**
* @author 兴趣使然黄小黄
* @version 1.0
* 选择排序
*/
public class SelectSort {
public static void main(String[] args) {
int[] array = {8, 3, 2, 1, 7, 4, 6, 5};
System.out.println("排序前: " + Arrays.toString(array));
selectSort(array);
System.out.println("排序后: " + Arrays.toString(array));
}
//选择排序
public static void selectSort(int[] arr){
//选择排序过程
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i; //假定最小索引,最小值为第一个元素
int min = arr[minIndex];
for (int j = i + 1; j < arr.length; j++) {
if (min > arr[j]){
//更新最小值
min = arr[j];
minIndex = j;
}
}
//将最小值放进arr[i]
if (i != minIndex){
arr[minIndex] = arr[i];
arr[i] = min;
}
//输出每轮排序后的结果
System.out.println("第" + (i+1) + "趟: " + Arrays.toString(arr));
}
}
}
运行结果如下:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)