选择排序

选择排序(Selection Sort)

  • 概念

   选择排序就是从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。它是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。好处就是不占用额外的内存空间了吧。

            

  • 步骤

   首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

    再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

    重复第二步,直到所有元素均排序完毕。

 

  • Java代码实现
public class SelectionSort {

    public void selectionSort(Integer arr[]){
        //先判断数组元素是否只有一个以下,若只有一个就不用排序
        if(arr.length<=1) return;
        for(int i=0;i<arr.length-1;i++)
            for(int j=i;j<arr.length-1;j++) {
                if(arr[i]>arr[j+1]) {
                    int temp = arr[i];
                    arr[i] = arr[j+1];
                    arr[j+1]=temp;
                }
            }
    }
    public static void main(String[] args) {
        Integer arr[] = {8,6,3,5,2,1};
        System.out.println("排序前的数组:"+Arrays.toString(arr));
        SelectionSort selectionSort = new SelectionSort();
        selectionSort.selectionSort(arr);
        System.out.println("排序后的数组:"+Arrays.toString(arr));
        //最终输出结果:
        //排序前的数组:[8, 6, 3, 5, 2, 1]
        //排序后的数组:[1, 2, 3, 5, 6, 8]

    }

}

 

posted @ 2020-05-26 15:36  发育中的程序猿  阅读(217)  评论(0编辑  收藏  举报