java排序算法—选择排序(二)

选择排序

选择排序的思想方法:快速排序的思想非常直接,正如名字一样,将要排序的数据元素选出最的,将它和数据元素的首位交换位置。再次从剩下的数据元素中 找到最的元素,放到第二个位置上……以此类推,直到将整个数据元素排序。

代码实现

public class selectSort {
    private int arr[];
    private int length;
    public selectSort(int a){
        arr=new int[a];
        length=0;
    }
    //显示
    public void show(){
        for (int s=0;s<length;s++){
            System.out.print(arr[s]+" ");
        }
        System.out.println(" ");
    }
    //插入
    public void insert(int i){
        arr[length]=i;
        length++;
    }
 //排序
    public void sort(){
	int i,j,min;
    	for(i=0;i<length-1;i++){                //外层循环,i表示当前最小值的下标
        	min=i;                              //假设第一位为最小
        	for (j=i+1;j<length;j++){
               if (arr[j]<arr[min]){
                 min=j;                      //从i+1开始,找出剩余的lenth-i的元素中最小的值赋给min
            }
        }
                swap(min,i);                //将min换到i的位置上
    }
}
    //交换
    public void  swap(int m,int n){
        int temp=arr[m];
        arr[m]=arr[n];
        arr[n]=temp;
    }
}

测试类

public class selectSortApp {
    public static void main(String args[]){
        selectSort arr;
        arr=new selectSort(10);
        arr.insert(5);
        arr.insert(2);
        arr.insert(1);
        arr.insert(8);
        arr.insert(3);
        arr.insert(4);
        System.out.print("排序前数组为:");
        arr.show();
        System.out.print("排序后数组为:");
        arr.sort();
        arr.show();
    }
}

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/nuoyan2018/article/details/84941870