写下面代码的题解public class InsertionSort { public static int[] sort(int[] arr) { int len = arr.length; int preIndex, current; for (int i = 1; i < len; i++) { preIndex = i - 1; current = arr[i]; while (preIndex >= 0 && arr[preIndex] > current) { arr[preIndex + 1] = arr[preIndex]; preIndex--; } arr[preIndex + 1] = current; System.out.println("Element " + current + " is inserted at index " + (preIndex + 1)); } return arr; } public static void main(String[] args) { int[] arr = {5, 3, 8, 6, 4}; int[] sortedArr = sort(arr); } }
时间: 2024-02-14 10:23:45 浏览: 42
这是一个插入排序算法的实现。插入排序的思路是将一个待排序的数列,依次将每个数插入到已经排好序的数列中的适当位置,直到全部插入完成。具体实现中,从第二个元素开始,将该元素与前面的元素进行比较,如果前面的元素比它大,就将它往后移动一位,直到找到合适的位置插入该元素。
在这段代码中,sort方法接收一个整型数组作为参数,返回一个排好序的整型数组。它使用了一个for循环来遍历整个数组,从第二个元素开始,使用一个while循环将该元素插入到前面已经排好序的子数组中的适当位置。在while循环中,preIndex表示已经排好序的子数组中的最后一个元素的下标,current表示当前待排序的元素的值。while循环中,如果当前待排序的元素比已经排好序的子数组中的某个元素小,就将该元素往后移动一位,直到找到合适的位置插入该元素。在插入完成之后,将该元素插入到数组中,并输出插入的位置。
在main方法中,创建了一个整型数组arr,调用sort方法将该数组排好序,并将排好序的数组返回到sortedArr中。
阅读全文