package test; import java.util.Scanner; public class InserSort { public static void main(String[] args) { /*输入十个数字*/ int a[]=new int[10]; Scanner sc=new Scanner(System.in); System.out.println(“请输入十个数字:”); for(int i=0;i<10;i++){ a[i]=sc.nextInt(); } /*排序的算法实现*/ for(int i=1;i<10;i++){ int j=i-1; int k=a[i]; while(true){ if(a[j]>k){ a[j+1]=a[j]; j–; if(j==-1) break; } else break; } a[j+1]=k; } //输出十个数字 System.out.println(“从小到大的排序为:”); for(int i=0;i<10;i++){ System.out.println(a[i]); } } }
插入排序时间复杂度:平均时间复杂度为 O(n^2) 最好情况:比较 n-1次,最坏情况比较n(n-1)/2
稳定性: 相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳 定的。