选择排序

给一个数组,从小到大排序;

1.平均时间复杂度O(n2), 

2.基本思想:从数组里找到最小的一个数,放在零的位置;然后从剩下的无序数组里找到最小的数放在第二个位置,依次类推;

3.过程:遍历数组,让最小的位置为零,然后从数组中,找到最小的数所在的位置;遍历完成后,如果最小的数所在的位置和零不一样,交换最小的数和第零位置上的数;

              然后让最小的位置为一,依次类推;

4.代码:

 public void selectSort(int[] array, int length) {
        //遍历数组
        for(int i = 0; i < length; i++) {
            //初始化最小数的位置
            int minIndex = i;
            //找到最小数的位置,记录为minIndex
            for(int j = i + 1; j < length; j++) {
                if(array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
            //对比最小数位置和遍历的位置,如果不相同,交换数字;
            if(minIndex != i) {
                int temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
        }
    }

 

posted @ 2019-02-27 10:28  特仑苏灬  阅读(98)  评论(0编辑  收藏  举报