排序算法
一、选择排序
package org.shydow.structure.sort; /** * @author Rainbow * @date 2021/11/29 21:43 * @desc 时间复杂度:O(n^2) */ public class CodeSelectSort { public static void SelectionSort(int[] arr) { if (null == arr || arr.length < 2) { return; } for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; for (int j = i + 1; j < arr.length; j++) { if (arr[minIndex] > arr[j]) { minIndex = j; } } Swap(arr, i, minIndex); } } private static void Swap(int[] arr, int i, int j) { int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } }
二、冒泡排序
package org.shydow.structure.sort; /** * @author Rainbow * @date 2021/11/30 7:58 * @desc 时间复杂度O(n^2) */ public class CodeBubbleSort { public static void bubbleSort(int[] arr) { if (null == arr || arr.length < 2) { return; } for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } } }