【代码积累】InsertionSort

来源:互联网 发布:漫步者da500调音软件 编辑:程序博客网 时间:2024/06/08 12:28
public class Main {public static void main(String[] args) {// TODO Auto-generated method stub//int[] test = {5,4,3,2,1};//int test[] = {5,4,3,2,1}; 两种写法都可以,建议使用上一种写法int[] test={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51};InsertionSort(test);}public static void InsertionSort(int[] a) {int key = -1; //每一轮循环的子数组的首元素for( int k=0;k<a.length;k++ ) {System.out.format("%d ", a[k]);}System.out.format("\r");for( int i=1;i<a.length;i++ ) {key = a[i]; int j=i-1;for( ;j>=0 && key<a[j];j-- ) {a[j+1] = a[j];}a[j+1] = key; //小循环结束//输出小循环结果for( int k=0;k<a.length;k++ ) {System.out.format("%d ", a[k]);}System.out.format("\r");}/*小结: * 1、插入排序,关键是确定2个子数组的下标走向,第一层循环从1开始,向右发展,第二层从第一层的首下标-1开始,向左发展; * 2、每次选取右数组的首元素,与左数组逐个比较,找到插入位置,将其它元素移位。*/}}