简单排序——冒泡,选择,插入
// 冒泡排序 每一次内循环将相邻的元素进行比较交换,直到所有元素比较完毕 public static void bubbleSort(int arr[]) { int temp; for (int i = 0; i < arr.length - 1; i++) { for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } // 选择排序 优化后的冒泡排序, // 内循环进行比较找出最大或最小元素的坐标;在内循环结束后进行交换 // 相对冒泡排序来说,优化了内存使用空间 public static void selectSort(int[] arr) { int minBound, temp; for (int i = 0; i < arr.length - 1; i++) { minBound = i; for (int j = i + 1; j < arr.length - 1; j++) { if (arr[j] < arr[minBound]) { minBound = j; // 内循环只负责找出最小或最大值的坐标 } } temp = arr[i]; // 循环结束后进行交换 arr[i] = arr[minBound]; arr[minBound] = temp; } } /** * 插入排序 选定一个顺序。从左至右 或是从右到左, 默认他们已经是有序的数据 在判断数据时 进行交换位置 实现排序功能 */ public static void insertSort(int[] arr) { int temp; for (int i = 1; i < arr.length; i++) { for (int j = i; j > 0; j--) { if (arr[j] < arr[j - 1]) { temp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = temp; } } } }
附插入排序模拟手稿