插入排序的思想是将数组分为前面有序和后面无序两部分,每次取后面无序部分的第一个数插入到前面有序的部分中,使得插入之后前面有序的那一部分仍然有序。
import java.util.Scanner; public class InsertSort{ public static void main(String args[]){ Scanner scanner=new Scanner(System.in); int total=scanner.nextInt(); int[] array=new int[1024]; for(int i=0;i<total;i++){ array[i]=scanner.nextInt(); } //total是数组长度 insertSort(array,total); output(array,total); } public static void output(int[] array,int total){ for(int i=0;i<total;i++){ System.out.print(array[i]+" "); } System.out.println(); } public static void insertSort(int[] array,int total){ int temp; int j; for(int i=1;i<total;i++){ temp=array[i]; for(j=i-1;j>=0;j--){ if(array[j]>temp){ array[j+1]=array[j]; }else{ break; } } array[j+1]=temp; } } }
测试数据
输入:
10
1 4 7 8 5 2 3 6 9 0
输出:
0 1 2 3 4 5 6 7 8 9
10
1 4 7 8 5 2 3 6 9 0
输出:
0 1 2 3 4 5 6 7 8 9