1. 程式人生 > >java排序演算法—選擇排序(二)

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();
    }
}

執行結果:
在這裡插入圖片描述