Java選擇排序法是一種簡(jiǎn)單而常見的排序算法,在實(shí)際開發(fā)中也被廣泛應(yīng)用。其原理是:先假設(shè)數(shù)組中第一個(gè)元素是最小的,然后在剩余元素中找到最小的元素,和第一個(gè)元素交換位置。接著假設(shè)數(shù)組中第二個(gè)元素是最小的,在剩余元素中找到最小的元素,和第二個(gè)元素交換位置。以此類推,直到數(shù)組中所有元素有序。
public static void selectionSort(int[] arr) { for (int i = 0; i< arr.length - 1; i++) { int minIndex = i; for (int j = i + 1; j< arr.length; j++) { if (arr[j]< arr[minIndex]) { minIndex = j; } } int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } }
以上是Java選擇排序法的代碼實(shí)現(xiàn)。首先通過循環(huán)遍歷數(shù)組,外層循環(huán)控制排序的輪數(shù),內(nèi)層循環(huán)控制每一輪中找到最小元素的下標(biāo)。在內(nèi)層循環(huán)中,將當(dāng)前元素和剩余元素中最小的元素進(jìn)行比較,如果當(dāng)前元素比最小元素還要小,則更新最小元素的下標(biāo)。經(jīng)過內(nèi)層循環(huán)后,找到了本輪中最小元素的下標(biāo),將其和第一個(gè)元素交換位置。以此類推,直到數(shù)組中所有元素有序。
Java選擇排序法雖然簡(jiǎn)單易懂,但其時(shí)間復(fù)雜度比較高,為O(n^2),不適合用于大規(guī)模數(shù)據(jù)的排序。在實(shí)際開發(fā)中,可以根據(jù)具體情況選擇更優(yōu)秀的排序算法。