从排序开始学JAVA(1)——直接插入排序
直接插入排序
基本思想:有一列数,把待排数字插入到前面已排好的数字序列中。
比如 n个数做直接插入排序 56,14,45,69,42,8,10
开始时有序表中只包含一个元素,无序组中有n-1个元素 有序表 无序表
56 14,45,69,42,8,10
从无序表取出第一个待排元素将它插入到有序表的适当位置 14, 56 45,69,42,8,10
(这里默认从小到大排列) 使之成为新的有序表 14, 45, 56 69,42,8,10
。。。。。。
重复n-1次可完成排序过程 8,10,14,42,45,56,69
JAVA实现程序:
1 package sort; 2 3 public class insertSort { 4 5 6 public static void main(String[]args){ 7 8 int[]array={56,14,45,69,42,8,10}; 9 10 int temp=0; 11 for(int i=1;i<array.length;i++){ 12 int j=i-1; 13 temp=array[i]; //array[i]是待排元素,赋值给临时变量temp 14 for(; j>=0 && temp<array[j]; j--) //待排元素与有序表中的元素从右到左一次比较,到合适位置停止 15 array[j+1]=array[j]; 16 array[j+1]=temp; 17 } 18 for(int i:array) 19 System.out.print(i+" "); 20 21 22 } 23 }