排序算法Java實現(選擇排序)


算法描述:對於給定的一組記錄,經過第一輪比較后得到最小的記錄,然后將該記錄與第一個記錄的位置進行交換;接着對不包括第一個記錄以外的其他記錄進行第二輪比較,得到最小的記錄並與第二個記錄進行位置交換;重復該過程,直到進行比較的記錄只有一個時為止。
package sorting;

/**
 * 選擇排序
 * 平均O(n^2),最好O(n^2),最壞O(n^2);空間復雜度O(1);不穩定;簡單
 * @author zeng
 *
 */
public class SelectionSort {

	public static void selectionSort(int[] a) {
		int n = a.length;
		for (int i = 0; i < n; i++) {
			int k = i;
			// 找出最小值的下標
			for (int j = i + 1; j < n; j++) {
				if (a[j] < a[k]) {
					k = j;
				}
			}
			// 將最小值放到未排序記錄的第一個位置
			if (k > i) {
				int tmp = a[i];
				a[i] = a[k];
				a[k] = tmp;
			}
		}
	}

	public static void main(String[] args) {
		int[] b = { 49, 38, 65, 97, 76, 13, 27, 50 };
		selectionSort(b);
		for (int i : b)
			System.out.print(i + " ");
	}
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM