java方式实现选择排序

Posted carrykai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java方式实现选择排序相关的知识,希望对你有一定的参考价值。

一、基本思想

    每一趟找到待排序数列的最小值,把它存放在已排序数列的最后面,直到把所有的数据排序完,即是第k趟找到待排序数据的最小值,然后把这个最小值存放在数组的第k(k=1,2...n)位置,直到把所有的数据排序完,一共需要进行n-1趟(n表示数组的长度),每一趟进行n-k次比较,找到该趟的最小值,比较总次数位n (n- 1) / 2次,所以时间复杂度位O(n2)。

二、代码展示

public class JavaSort {
    public static void main(String[] args) {
        int a [] =new int []{1,5,4,10,6,29,5,20};
        selectSort(a);        System.out.println("排序后的数组"+Arrays.toString(a));
    }
    /**
     * 选择排序简单原理:总共进行n-1趟(n表示数组长度),第k趟找出该趟最小的数据,存放在数组的第k-1个位置上。
     * @param ary 要排序的数组
     * @return 返回排序好的数组
     */
    public static int [] selectSort(int [] ary) {
        for (int i = 0; i < ary.length-1; i++) {//进行n-1趟
            int min=i;//每趟扫描最小值位置
            for (int d = i+1; d < ary.length; d++) {//第k趟进行n-k次比较k=i-1)
                if(ary[min]>ary[d]) {
                    min=d;//找到每一趟最小值所在的位置
                }
            }
            int temp=ary[i];//将i下标(i下标对应i+1趟)所对应的元素与每趟最小值交换
            ary[i]=ary[min];
            ary[min]=temp;        
        }
        return ary;
    }
}

 运行结果为:排序后的数组[1, 4, 5, 5, 6, 10, 20, 29]

 

    

以上是关于java方式实现选择排序的主要内容,如果未能解决你的问题,请参考以下文章

java方式实现选择排序

转载 排序

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

7种基本排序算法的Java实现

Java数据结构—排序算法