01_选择排序

package algorithm;

import java.util.Arrays;

/**
 * 简单选择排序:时间复杂度为(1+2+3+4+...+(n-1))~O(n2)
 * 思想:每次从后边的序列中找到最小的数,并且记录下位置,最后将还要小的数放在前面
 * @author cloud
 * @data 2016年7月18日
 * @version 1.0
 * @description
 */
public class SelectSort {
    /**
     * 与冒泡排序的不同之处就在易不用每次都进行交换,等把所有的都比较完之后再进行交换,效率提高
     * @param array
     */
    public static void selectSort(int[] array) {
        int len = array.length;
        for (int i = 0; i < len - 1; i++) {
            int position = i;
            int min = array[i];
            for (int j = i + 1; j < len; j++) {
                if (array[j] < min) {
                    min = array[j];
                    position = j;
                }
            }
            if (i != position) {
                int temp = array[i];
                array[i] = min;
                array[position] = temp;
            }
        }
        System.out.println(Arrays.toString(array));
    }

    public static void main(String[] args) {
        int[] array = { 5, 6, 9, 8, 7, 1, 3, 2, 4 };
        selectSort(array);
    }
}

 

posted @ 2016-06-29 20:00  桃源仙居  阅读(76)  评论(0)    收藏  举报