选择排序

来源:互联网 发布:幼儿园美工区域教案 编辑:程序博客网 时间:2024/06/05 02:04

public class SelectionSort {    public static void selectionSort(int[] array) {        if (array == null || array.length == 0) {            return;        }        int minIndex = 0;//右侧无序区最小下标        for (int i = 0; i < array.length; i++) {            minIndex = i;            for (int j = i + 1; j < array.length; j++) {                //找出无序区最小下标                if (array[j] < array[minIndex]) {                    minIndex = j;                }            }            //如果不是一开始的默认值 就交换            if (minIndex != i) {                int temp = array[minIndex];                array[minIndex] = array[i];                array[i] = temp;            }        }    }    public static void main(String[] args) {        int[] array = {5,2,3,7};        selectionSort(array);        for (int i : array) {            System.out.println(i);        }    }}

算法描述:

有无序数组a[n] = 5,2,3,7

i=0->n-1 依次取值

最小值smallest=i

循环找出找出j=i+1到n-1的最小值和smallest比较 如果小就交换

执行顺序如下

5,2,3,7  

2,5,3,7  2和5交换

2,3,5,7 3和5交换

2,3,5,7 



原创粉丝点击