您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页Sort-Selection Sort 选择排序

Sort-Selection Sort 选择排序

来源:二三娱乐

排序算法之选择排序

时间复杂度:O(n2)

空间复杂度:O(1)

是否稳定:不稳定 1

算法:

选择排序算法的运作如下:(从前往后)
第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;
第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;
以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

Java实现如下

package prs.rfh.algorithm.sort;

/**
 * @author Swift
 * @version $Algorithm: SelectionSort, v 0.1 2017/1/9 10:29 Swift Exp $$
 */
public class SelectionSort {

    public static int[] SelectionSort(int [] array){
        if (array==null || array.length == 0)throw new IllegalArgumentException("参数非法");
        for (int i = 0; i < array.length-1; i++) {
            for (int j = i+1; j < array.length; j++) {
                if (array[i]>array[j]){
                    int temp = array[j];
                    array[j] = array[i];
                    array[i] = temp;
                }
            }
        }
        return array;
    }

}

【1】稳定性:

举个例子,序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了,所以选择排序不是一个稳定的排序算法。</br>
<i>@author Swift</i>
<i>@date 2017-1-9</i>

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务