选择排序java

先简述选择排序,然后上代码

  进行选择排序就是将所有的元素扫描一遍,从中挑选(或者说是选择,这正是这个排序名字的由来)最小的一个元素,将这个最小的元素与最左边的元素交换位置 ,现在最左边的元素就是有序的了,不需要再交换位置了。

  再次扫描元素队列时,就从第二个位置开始,还是寻找最小的元素,然后与第二个位置交换位置。

  这个过程一直持续到所有的元素都排定。

选择排序类:

package com.dxx.order;

public class SelectSort {
private int arrs[];

    public SelectSort(int[] arrs) {
        super();
        this.arrs = arrs;
    }
    
    public void sortArrs(){
        int len = arrs.length;
        int temp = 0;
        //进行len-1次循环,每次循环都将在未排序的元素中找出最小的放在已排序的末端
        for(int i=0;i<len-1;i++){
            temp = i;
            //进行len-1-i次循环,找到未排序元素中最小的元素的下标;
            for(int j=i;j<len-1;j++){
                temp = arrs[j+1]>arrs[temp] ?temp:j+1;
            }
            if(temp != i){
                //将最小的元素与下标为i的元素交换位置
                int change;
                change = arrs[temp];
                arrs[temp] = arrs[i];
                arrs[i] = change;
            }
        }
    }
    
    public void printArrs(){
        for(int i :arrs){
            System.out.print(i + "   ");
        }
        System.out.println();
    }
}

主程序类:

package com.dxx.order;

public class MainTest {

    public static void main(String[] args) {
        int arrs[] = {1,3,2,5,4,8,6,7};
        SelectSort selectSort = new SelectSort(arrs);
        selectSort.printArrs();
        selectSort.sortArrs();
        selectSort.printArrs();

    }

}
原文地址:https://www.cnblogs.com/dxx-blogs/p/4465118.html