1.什么是选择排序
- 选择排序这种算法是一种较为简单直观的排序算法。
- 这个算法的基本思想就是:首先在没有排序的数列里找出最小的元素,并把它放到这一组数列最开始的位置;
- 接着就是把剩余没有排序的元素里继续寻找最小的元素,把它放在已经排序好的序列的后面
- 依次类推,直到最后面把所有的元素都排序完。
2.选择排序算法图解
- 有7个数组组成的无序数列 :8,2,6,4,3,7,5 希望从小到大排。
- 根据选择排序算法的实现思路来完成排序
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)测试结果