Skip to content
On this page

排序算法

交换方法

java
public static void swap(int[] arr, int i, int j) {
   int tmp = arr[j];
   arr[j] = arr[i];
   arr[i] = tmp;
}

冒泡排序

java
public static void bubbleSort(int[] arr) {
   if (arr == null || arr.length < 2) {
      return;
   }
   int N = arr.length;
   for (int end = N - 1; end >= 0; end--) {
      for (int second = 1; second <= end; second++) {
         if (arr[second - 1] > arr[second]) {
            swap(arr, second - 1, second);
         }
      }
   }
}

选择排序

java
public static void selectionSort(int[] arr) {
   if (arr == null || arr.length < 2) {
      return;
   }
   int N = arr.length;
   for (int i = 0; i < N; i++) {
      int minValueIndex = i;
      for (int j = i + 1; j < N; j++) {
         minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex;
      }
      swap(arr, i, minValueIndex);
   }
}

插入排序

java
public static void insertionSort(int[] arr) {
	if (arr == null || arr.length < 2) {
		return;
	}
	int N = arr.length;
	for (int end = 1; end < N; end++) {
		int newNumIndex = end;
		while (newNumIndex - 1 >= 0 && arr[newNumIndex - 1] > arr[newNumIndex]) {
			swap(arr, newNumIndex - 1, newNumIndex);
			newNumIndex--;
		}
	}
}