標籤:
1 import java.util.Arrays; 2 3 /** 4 * 各種排序演算法從小到大進行排序 5 */ 6 public class Test { 7 8 public static void main(String args[]) { 9 int[] n = { 5, 2, 3, 4, 1 };10 int[] n1, n2, n3;11 n1 = n2 = n3 = Arrays.copyOf(n, n.length);12 13 System.out.println("原來的數組:");14 printArray(n);15 16 selectionSort(n1);17 System.out.println("\n選擇排序後:");18 printArray(n1);19 20 bubbleSort(n2);21 System.out.println("\n冒泡排序後:");22 printArray(n2);23 24 insertionSort(n3);25 System.out.println("\n插入排序後:");26 printArray(n3);27 }28 29 /** 選擇排序:首先確定的是最小元素 */30 private static void selectionSort(int number[]) {31 for (int i = 0; i < number.length - 1; i++) {32 // 對當前無序區間score[i......length-1]進行排序33 for (int j = i + 1; j < number.length; j++) {34 if (number[i] > number[j]) {35 int temp = number[i];36 number[i] = number[j];37 number[j] = temp;38 }39 }40 41 }42 }43 44 /** 冒泡排序:最先確定的是最大的元素 */45 private static void bubbleSort(int number[]) {46 for (int i = 0; i < number.length - 1; i++) {47 // 對當前無序區間score[0......length-i-1]進行排序48 for (int j = 0; j < number.length - i - 1; j++) {49 if (number[j] > number[j + 1]) {50 int temp = number[j];51 number[j] = number[j + 1];52 number[j + 1] = temp;53 }54 }55 }56 }57 58 /** 插入排序:不斷將元素插入到已經排好序的資料(注意插入的順序) */59 private static void insertionSort(int[] list) {60 for (int i = 1; i < list.length; i++) {61 int currentElement = list[i];62 // 把list[i]插入到list[0]~list[i-1]之間,這樣list[0]~list[i]就排好序了63 int j;64 for (j = i - 1; j >= 0 && list[j] > currentElement; j--) {65 list[j + 1] = list[j];66 }67 // 把當前元素插入到list[j+1]68 list[j + 1] = currentElement;69 }70 }71 72 /** 列印數組中的元素 */73 private static void printArray(int number[]) {74 for (int i : number) {75 System.out.print(i + "\t");76 }77 }78 }
運行結果:
幾種排序演算法的java實現