十八、自己動手實現排序算法(6)-------- “ Select Sort 選擇排序 ”

參考文章:

https://www.cnblogs.com/guoyaohua/p/8600214.html                  十大經典排序算法最強總結(含JAVA代碼實現)


選擇排序分析:

平均時間複雜度 最好情況 最壞情況 空間複雜度 排序方式 穩定性
O(n^2) O(n) O(n^2) O(1) In-place 不穩定

 

選擇排序原理:

       選擇排序(Selection-sort)是一種簡單直觀的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 

 

選擇排序原理圖解:

 

 

Java 實現代碼:

package com.sorting.algorithm;

public class SelectionSort {
	// 選擇排序算法
	public static int[] selectionSort(int[] array){
		for(int i=0; i < array.length; i++){
			int minIndex = i;
			for(int j=i; j < array.length; j++){
				if(array[minIndex] > array[j])
					minIndex = j;
			}
			int temp = array[i];
			array[i] = array[minIndex];
			array[minIndex] = temp;
			
			printArr(array);
		}
		return array;
	}

	public static  void printArr(int[] array){
		for (int i = 0; i < array.length; i++) {
			if(i != array.length-1)
				System.out.print(array[i] + ",");
			else
				System.out.println(array[i]);
		}
		System.out.println();
	}

	public static void main(String[] args) {
		int[] array = { 58,36,70,22,88,64,1,32 };
		System.out.println("排序之前:");
		printArr(array);
		System.out.println("-------------------------------");
		
		System.out.println("排序過程");
		selectionSort(array);
		
		System.out.println("-------------------------------");
		System.out.println("排序之後:");
		printArr(array);	
	}

}

 

 

 

選擇排序算法測試:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章