简单的插入排序

package cn.edu.gdut.zsm.sort;


public class Test {

/**
* 直接插入排序,数组是引用类型,作为方法的参数,其元素值将被改变
*/ 
public static void insertSort(int[] table) {
System.out.println("直接插入排序");
for (int i = 1; i < table.length; i++){ // n-1趟扫描
int temp = table[i], j; // 每趟将table[i]插入到前面排序序列中
for (j = i - 1; j >= 0 && temp < table[j]; j--){ // 将前面较大元素向后移动
table[j + 1] = table[j];
}
table[j + 1] = temp; // temp值到达插入位置
System.out.print("第" + i + "趟: ");
print(table); // 输出排序中间结果,可省略
}
}

/**
*打印 
*/
public static void print(int[] table){
if (table != null){
for (int i = 0; i < table.length; i++)
System.out.print(" " + table[i]);
}
System.out.println();
}

public static void main(String[] args) {
int[] ary = {32,11,5,42,98,33,87,12};
Test.insertSort(ary);
}
}

你可能感兴趣的:(插入排序)