天天看點

java直接選擇排序

直接選擇排序:

1、基本思想:

      直接選擇排序的基本思想是将指定排序位置與其它數組元素分别比較,如果滿足條件就交換元素值,注意這裡差別冒泡排序,不是交換相鄰的元素,而是把滿足條件的元素與指定的排序位置交換,這樣排序好的位置逐漸擴大,最後整個數組都成為已排序好的格式。

2、算法:

       每一次從帶排序的資料元素中選出最大(或最小)的一個元素,順序地放在已排好序的數列的最後,直到全部待排序的資料元素排完。

/*
 * 直接選擇排序執行個體
 */
public class SelectSort {
	public static void main(String[] args){
		int arr[] = {64, 32, 35, 4, 2, 5};//建立一個數組
		SelectSort sorter = new SelectSort();//建立直接排序類的對象
		sorter.sort(arr);//調用排序對象的方法将數組排序
	}
	/*
	 * 直接選擇排序
	 */
	public void sort(int[] arr){
		for(int i = 1; i < arr.length; i++){
			int index = 0;
			for(int j =1; j <= arr.length-i; j++){
				if(arr[j] > arr[index]){
					index = j;
				}
			}
			//交換在位置array.length-i和index上的兩個數
			int temp = arr[arr.length - i]; //把第一個元素值儲存到臨時變量中
			arr[arr.length - i] = arr[index];//把第二個元素值儲存到第一個元素單元中
			arr[index] = temp;//把臨時變量(第一個元素原值)儲存到第二個元素單元中
		}
		showArray(arr);//輸出直接選擇排序後的數組值
	}
	/*
	 * 顯示數組中的所有元素
	 */
	public void showArray(int[] array){
		for(int j:array){//周遊數組
			System.out.print(">" + j);//輸出數組中元素值
		}
		System.out.println();
	}
}