直接插入排序

来源:互联网 发布:华南师范大学网络登录 编辑:程序博客网 时间:2024/05/21 05:20

思想:利用有序表的插入操作进行排序

有序表的插入:将一个记录插入到已排好序的有序表中,从而得到一个新的有序表。

代码如下:

/** * 直接插入排序 *  * @author Administrator *  */public class DirectInsertionSort {public static void main(String[] args) {int[] data = { 5, 8, 3, 0, 9, 12, 7 };System.out.print("数组直接插入排序之前的序列为:");printArray(data);System.out.println();System.out.print("数组直接插入排序排序之后的序列为:");insertSort(data);printArray(data);}private static void insertSort(int[] data) {// 从第二个元素开始,第一个元素本身是有序的for (int i = 1; i < data.length; i++) {int key = data[i];int j = i - 1;while (j >= 0 && data[j] > key) {data[j + 1] = data[j];data[j] = key;j--;}}}public static void printArray(int[] data) {for (int d : data) {System.out.print(d + "  ");}}}

插入排序是稳定的。

原创粉丝点击