插入排序的重点是在选择插入位置的时候,要把插入位置后面的元素向后移动。
package AboutPaixu;
import java.util.Scanner;
public class InsertSort {
public static void main(String []args){
int n;
Scanner s=new Scanner(System.in);
n=s.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++){
a[i]=s.nextInt();
}
for(int i=1;i<n;i++){
int j=i;
int m=a[i];
while(j>0&&m>a[j-1]){
a[j]=a[j-1]; //若当前元素小于或等于目标元素,则将该元素向后移动一位。
j--;
}
a[j]=m;//插入目标元素。
}
for(int i=0;i<n;i++){
System.out.print(a[i]+" ");
}
}
}
最坏情况下时间复杂度为O(n^2)。