排序算法之选择排序的思想以及Java实现

1 基本思想
选择排序的思想是,每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

2,算法的实现(Java)

package Algorithm;

public class SelectSort {

    /**
     * @param args
     */
    public static void main(String[] args) {
        int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};
        System.out.println("排序之前:");
        out_put.output(data);
        System.out.println();
        System.out.println("排序之后:");
        SelectSort.select_sort(data);
        out_put.output(data);
    }

    public static void select_sort(int[] arr){
        if(arr == null || arr.length < 2){
            return;
        }   
        int index;//定义下标
        for(int i=0;i<arr.length;i++){
            index = i;//初始下标为i
            for(int j=i+1;j<arr.length;j++){
                if(arr[j]<arr[index]){
                    index = j;
                }
            }
            if(index != i){
                int temp = arr[index];
                arr[index] = arr[i];
                arr[i] = temp;
            }
        }
    }
}

得到的结果为:
这里写图片描述

3 性能分析
选择排序的时间复杂度为O(n^2),由于每次选择仅考虑某一位置上的数据情况,可能会破坏之前数据的相对位置,因此它是一种不稳定的排序方法。

原文地址:https://www.cnblogs.com/cmderq/p/9130853.html