码迷,mamicode.com
首页 > 编程语言 > 详细

选择排序

时间:2018-06-03 19:41:39      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:tps   排序   ring   bsp   select   sele   解释   void   aik   


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

 

通俗的解释

  它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

 

时间复杂度

比较次数O(n^2)

 

示例:

public static void selectSort(Integer[] a) {
    int minIndex = 0;
    int temp = 0;
    for (int i = 0; i < a.length - 1; i++) {
        minIndex = i;//无序区的最小数据数组下标
        for (int j = i + 1; j < a.length; j++) {
            //在无序区中找到最小数据并保存其数组下标
            if (a[j] < a[minIndex]) {
                minIndex = j;
            }
        }
        //将最小元素放到本次循环的前端
        temp = a[i];
        a[i] = a[minIndex];
        a[minIndex] = temp;
    }
}

public static void main(String[] args) {
    Integer[] myList = { 5, 3, 6, 2, 10 };
    selectSort(myList); //{2, 3, 5, 6, 10}

    for (Integer integer : myList) {
        System.out.println(integer);
    }
}

 

参考:https://baike.baidu.com/item/%E9%80%89%E6%8B%A9%E6%8E%92%E5%BA%8F

选择排序

标签:tps   排序   ring   bsp   select   sele   解释   void   aik   

原文地址:https://www.cnblogs.com/ooo0/p/9129629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!