天天看點

選擇排序之直接選擇排序Java實作選擇排序之直接選擇排序Java實作

選擇排序之直接選擇排序Java實作

<pre name="code" class="java">package com.mike.sort;

import java.util.Arrays;

public class SelectSort {
	/*
	 * 直接選擇排序
	 */
	public static void selectSort(DataWrap[] data){
		int length=data.length;
		for (int i = 0; i < data.length-1; i++) {
			int minIndex=i;
			for (int j = i+1; j < data.length; j++) {
				if (data[minIndex].compareTo(data[j])>0) {
					minIndex=j;
				}
			}
			if (minIndex!=i) {
				DataWrap temp=data[minIndex];
				data[minIndex]=data[i];
				data[i]=temp;
			}
		}
	}
    /*
	 * 交換數組元素
	 */
	public static void swap(DataWrap[] data,int i,int j){
		DataWrap temp=data[i];
		data[i]=data[j];
		data[j]=temp;
	}
    public static void main(String[] args) {  
        DataWrap[] dataWraps={  
                new DataWrap(21,""),  
                new DataWrap(31,""),  
                new DataWrap(2,""),  
                new DataWrap(2338,"*"),  
                new DataWrap(2122,""),  
                new DataWrap(22,""),  
                new DataWrap(55,""),  
                new DataWrap(134,""),  
                new DataWrap(24000,"")  
        };  
        System.out.println("排序之前:"+Arrays.toString(dataWraps));  
        selectSort(dataWraps);  
        System.out.println("排序之後:"+Arrays.toString(dataWraps));  
    }
}
/*
*定義一個資料包裝類
*/
class DataWrap implements Comparable<DataWrap>{
	int data;
	String flag;
	public DataWrap() {
		// TODO Auto-generated constructor stub
	}
	public DataWrap(int data,String flag) {
		this.data=data;
		this.flag=flag;
	}
	@Override
	public String toString(){
		return data+flag;
	}
	@Override
	public int compareTo(DataWrap o) {
		// TODO Auto-generated method stub
		return this.data>o.data?1:(this.data==o.data?0:-1);
	}
}