1.什么是选择排序

  • 选择排序这种算法是一种较为简单直观的排序算法。
  • 这个算法的基本思想就是:首先在没有排序的数列里找出最小的元素,并把它放到这一组数列最开始的位置;
  • 接着就是把剩余没有排序的元素里继续寻找最小的元素,把它放在已经排序好的序列的后面
  • 依次类推,直到最后面把所有的元素都排序完。

2.选择排序算法图解

  • 有7个数组组成的无序数列 :8,2,6,4,3,7,5 希望从小到大排。

【算法】选择排序算法原理及实现_System

  • 根据选择排序算法的实现思路来完成排序

【算法】选择排序算法原理及实现_System_02

【算法】选择排序算法原理及实现_java_03

3.选择排序编码实现

(1)整体代码实现

/**
* 选择 排序算法
*/
public class SelectSort {

public static void main(String[] args) {
int[] arr = {8,2,6,4,3,7,5};
System.out.println("排序前:");
System.out.println(Arrays.toString(arr));
selectSort(arr);
System.out.println("排序后:");
System.out.println(Arrays.toString(arr));
}

public static void selectSort(int[] arr){
//从第一个元素开始循环,每次比较都会 把最小的放在当前循环的元素上
for (int i = 0;i<arr.length-1;i++){
//记录当前元素的index
int index = i;
//开始从当前元素的下一个元素进行比较,直至比较到末尾
for (int j = index+1; j < arr.length; j++) {
//如果发现后面的元素比当前记录的index索引小的话就将数值小的索引付给index
//直至循环结束,得到最小元素的索引下表
if(arr[j]<arr[index]){
index=j;
}
}
//拿到最小index之后,就进行数据交换
//先判断下我们找到的最小的index 和当前元素的索引是不是相等的
//如果是相等就不在进行交换,说明当前索引的元素就是最小值
if(index!=i){
int temp=arr[i];
arr[i]=arr[index];
arr[index]=temp;
}
System.out.print("第"+(i+1)+"轮:");
System.out.println(Arrays.toString(arr));
}
}
}

(2)测试结果

【算法】选择排序算法原理及实现_选择排序_04