[java]選擇排序

VictorLeeLk發表於2017-08-26
//選擇排序(08/26),個人寫
    public void selectsort(int[] array){
        if(array==null||array.length==0)
            return;
        for(int i=0;i<array.length;i++){
            for(int j=i+1;j<array.length;j++){
                if(array[j]<array[i]){
                    array[i]^=array[j];
                    array[j]^=array[i];
                    array[i]^=array[j];
                }
            }
        }
    }
    public void selectsort2(int[] array){
        if(array==null||array.length==0)
            return;
        for(int i=0;i<array.length;i++){
            int min_value=array[i];
            for(int j=i+1;j<array.length;j++){
                if(array[j]<min_value){
                    min_value=array[j];
                }
            }
            array[i]=min_value;
        }
    }

另一部分程式碼同樣是選擇排序,不過是參考完成,如下:

package sort_book_datastruction;

import java.util.Scanner;

public class SelectSort {
    public void selectSort(int[] array){
        int length = array.length;
        for(int i = 1;i<length;i++){
            int minIndex = i - 1;
            for(int j = i;j<length;j++){
                if(array[j]<array[minIndex])
                {
                    //min = array[j];
                    minIndex = j;
                }
            }
            if(minIndex!=(i-1)){
                int temp = array[i-1];
                array[i-1] = array[minIndex];
                array[minIndex] = temp;
            }

        }

    }
    public void showArray(int[] array){
        int length= array.length;
        for(int i =0;i<length;i++){
            System.out.print(" "+array[i]);
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.print("輸入陣列大小:");
        int num = 0;
        Scanner sc = new Scanner(System.in);
        if(sc.hasNextInt()){
             num = sc.nextInt();    
        }
         int[] array = new int[num];
        System.out.println("輸入陣列資料:");
        for(int i =0;i<num;i++){
            array[i]  = sc.nextInt();
            //System.out.print(" "+array[i]);
        }
//      int[] array={3,1,5,7,2,4,9,6};
        SelectSort ss = new SelectSort();
        ss.selectSort(array);
        //ss.showArray(array);
        for(int a:array)
            System.out.print(" "+a);        
    }
}

相關文章