直接插入排序的思想是:在一列无序的数列中,取出第一个元素,将它插入到有序表的合适位置,使有序表仍然有序。直到序列中的全部记录插入完成为止。
假设有一列无序数组,第一个自成有序表,依次将无序数组中的记录插入有序表中,直到全部排序完成。
源代码(Java语言):
import java.math.BigDecimal; import java.math.RoundingMode; import java.util.Scanner; public class Main{ // public final static double pi = 3.1415927; public static void main(String[] args) { Scanner sin=new Scanner(System.in); while(sin.hasNextInt()){ int len = sin.nextInt(); int array[] = new int[100]; for(int i=0; i<len; i++){ array[i] = sin.nextInt(); } Insertsort(array, len); display(array, len); } } public static void display(int array[],int len){ for(int i=0; i<len; i++){ System.out.print(array[i]+" "); } } public static void Insertsort(int array[],int len){ int j, q; for(int i=1; i<len; i++){ for(j=i-1; j>=0; j--){ if(array[j] < array[i]) break; } if(j != i-1){ int temp = array[i]; for(q=i-1; q>j; q--){ array[q+1] = array[q]; } array[q+1] = temp; } } } }