选择排序
1 算法步骤
1)首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置;
2)再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾;
3)重复第二步,直到所有元素均排序完毕。
2 动画演示
3 参考代码
package com.tcxpz.selection; /** * 直接选择排序 * 第1趟从R[0]~R[n-1]中选取最小值,与R[0]交换; * 第2趟从R[1]~R[n-1]中选取最小值,与R[1]交换; * 第i趟从R[i-1]~R[n-1]中选取最小值,与R[i-1]交换; * * 4 2 3 6 5->2 4 3 6 5->2 3 4 6 5->2 3 4 6 5->2 3 4 5 6 * @author jgp QQ:1072218420 * */ public class SelectionSort { public static void main(String[] args) { int[] arr = new int[]{4,2,3,6,5}; System.out.print("排序前:"); for(int num:arr) System.out.print(num+" "); System.out.println(); //进行排序 int[] bubble_arr = sort(arr); System.out.print("排序后:"); for(int num:bubble_arr) System.out.print(num+" "); } private static int[] sort(int[] arr) { for(int i=0;i<arr.length-1;i++){ int min = i; for(int j=i+1;j<arr.length;j++){ if(arr[j]<arr[min]){ min = j; } } if(i!=min){ int temp = arr[i]; arr[i] = arr[min]; arr[min] = temp; } } return arr; } }