選擇排序,升序。釋義參考百度百科
public static void selectionSort(int[] ints) { for (int i = 0; i < ints.length - 1; i++) { int minIndex = i; // 每一個元素都和剩下的未排序的元素比較 for (int j = i + 1; j < ints.length; j++) { if (ints[minIndex] > ints[j]) { minIndex = j; } } // 經過一輪循環,k爲本輪最小值的下標,如果最小值下標不是自己,就把最小值跟自己互換位置 if (minIndex != i) { int temp = ints[i]; ints[i] = ints[minIndex]; ints[minIndex] = temp; } } }
測試代碼:
import java.util.Arrays; public class SelectionSort { public static void main(String[] args) { int[] ints = {9, 12, 0, 5, -1}; selectionSort(ints); System.out.println(Arrays.toString(ints)); } public static void selectionSort(int[] ints) { for (int i = 0; i < ints.length - 1; i++) { int minIndex = i; // 每一個元素都和剩下的未排序的元素比較 for (int j = i + 1; j < ints.length; j++) { if (ints[minIndex] > ints[j]) { minIndex = j; } } // 經過一輪循環,k爲本輪最小值的下標,如果最小值下標不是自己,就把最小值跟自己互換位置 if (minIndex != i) { int temp = ints[i]; ints[i] = ints[minIndex]; ints[minIndex] = temp; } } } }