(Java版)八大排序------选择排序

it2025-03-27  4

基本原理 假设要排序的数列的第一个数为已排好序的,然后把第二个数插入到前面已经排好序的数中,然后把第三个数插入到前面已经排好序的数中,以此类推,,,

int[] arr = { 100, 22, 5, 55, 77 };

第一次

int[] arr = { 22,100, 5, 55, 77 };

第二次

int[] arr = { 5,22,100, 55,77 };

第三次

int[] arr = { 5,22,55,100,77 }; int[] arr = { 5,22,55,77,100 };

源代码

public class InsertSort { public static void main(String[] args) { int[] arr = { 100, 22, 5, 55, 100, -11, 8888, 12 }; System.out.println("排序前:" + Arrays.toString(arr)); sort(arr); System.out.println("排序后:" + Arrays.toString(arr)); } public static void sort(int[] arr) { for (int i = 1; i < arr.length; i++) { int insertVal = arr[i];//insertVal需要进行插入的数 int insertIndex = i - 1;//已排好序的末尾元素的下标 while (insertIndex >= 0 && insertVal < arr[insertIndex]) {//找到该插入的位置(insertIndex+1) arr[insertIndex + 1] = arr[insertIndex]; insertIndex--; } if (insertIndex+1 != i) {//如果不是原位置,则插入,,,否则不插入保留原位置 arr[insertIndex + 1] = insertVal; } } } }
最新回复(0)