package com.cowain.day1; /** * @Author: fxw * @Date: 2022/2/24 19:04 */ public class ArraySort { public static void main(String[] args) { int[] array = {5, 7, 9, 10, 3, 2, 8, 1}; System.out.print("选择排序:"); SelectionSort(array); System.out.println(); System.out.print("冒泡排序:"); bubbleSort(array); System.out.println(); System.out.print("插入排序:"); insertSort(array); } /** * 选择排序 * * @param array 无序数组 */ public static void SelectionSort(int[] array) { if (array == null || array.length < 2) { // 判断array数组是否为空 如果为空就直接返回 或则数组的长度是否小于2 //小于2的话就说明数组只有一个数值 则不需要判断 return; } for (int i = 0; i < array.length; i++) { //循环数组的长度 int minValueIndex = i;//认为默认最小index的值就是0 for (int j = i + 1; j < array.length; j++) { //从索引为i+1后面的元素进行筛选比较 //如果array[i+1]>array[minvalue] 则 minvalue=minvalue 反之minvalue=i+1 minValueIndex = array[j] > array[minValueIndex] ? minValueIndex : j; } //进行换位处置 swap(array, i, minValueIndex); } printArray(array); } /** * 冒泡排序 * * @param array 无序数组 */ public static void bubbleSort(int[] array) { if (array == null || array.length < 2) { // 判断array数组是否为空 如果为空就直接返回 或则数组的长度是否小于2 //小于2的话就说明数组只有一个数值 则不需要判断 return; } for (int i = 0; i <array.length ; i++) {//循环数组的长度 for (int j = i+1; j <array.length ; j++) { //以数组的第一个元素和array[array.length-1]去做比较 if (array[i]>array[j]){ //如果array[i]大于array[i+1]的值 注意 外圈循环一次 内圈需要循环array.length-(i+1)次数 swap(array, i, j); } } } printArray(array); } /** * 插入排序 * @param array 无序数组 */ public static void insertSort(int [] array){ if (array == null || array.length < 2) { // 判断array数组是否为空 如果为空就直接返回 或则数组的长度是否小于2 //小于2的话就说明数组只有一个数值 则不需要判断 return; } // 索引 0-0 OK //索引 0-1 需要比较 1和 0 说明只需要从1开始去比 //索引0-2 需要比较 2 1 0 //索引 0-array.length for (int i = 1; i <array.length ; i++) { for (int j = i-1; j >=0&&array[j]>array[j+1] ; j--) { //换位处理 swap(array,j,j+1); } } printArray(array); } //打印数组 public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println(); } //换位 public static void swap(int[] array, int firstNum, int secondNum) { int temp = array[firstNum]; array[firstNum] = array[secondNum]; array[secondNum] = temp; } }
java实现 冒泡排序 插入排序 选择排序
最新推荐文章于 2024-08-04 11:07:52 发布