插入排序

it2026-04-10  2

目录

要求代码复杂度时间复杂度空间复杂度 稳定性分析

要求

将数值数组按从小到大排序。

代码

public class Insertion { // 对数组a中的元素进行排序 public static void sort(Comparable[] a) { for(int i=1;i< a.length;i++) { // 当前元素为a[i],依次和i前面的元素比较,找到一个小于等于a[i]的元素 for(int j=i;j>0;j--) { if (greater(a[j-1],a[j])) { // 交换元素 exch(a, j, j-1); }else { break; } } } } // 比较v元素是否大于w元素 private static boolean greater(Comparable v, Comparable w) { return v.compareTo(w) > 0; } // 交换数组a中,索引i和索引j处的值 private static void exch(Comparable[] a, int i, int j) { Comparable t = a[i]; a[i] = a[j]; a[j] = t; } } public class Test { public static void main(String[] args) { Integer[] a = {4,8,6,1,3,5,6}; Insertion.sort(a); System.out.println(Arrays.toString(a)); } } [1, 3, 4, 5, 6, 6, 8]

复杂度

时间复杂度

O(n^2)

空间复杂度

O(1)

稳定性分析

稳定

最新回复(0)