JAVA排序算法实现代码-插入排序
- /**
- * JAVA排序算法实现代码-插入排序。
- *
- * @author 老紫竹 JAVA世纪网(java2000.net)
- *
- */
- public class Test {
- public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; // 预设数据数组
- public static void main(String args[]) {
- int i; // 循环计数变量
- int Index = a.length;// 数据索引变量
- System.out.print("排序前: ");
- for (i = 0; i < Index - 1; i++)
- System.out.print(" " + a[i] + " ");
- System.out.println("");
- InsertSort(Index - 1); // 选择排序
- // 排序后结果
- System.out.print("排序后: ");
- for (i = 0; i < Index - 1; i++)
- System.out.print(" " + a[i] + " ");
- System.out.println("");
- }
- public static void InsertSort(int Index) {
- int i, j, k; // 循环计数变量
- int InsertNode; // 欲插入数据变量
- for (i = 1; i < Index; i++) // 依序插入数值
- {
- InsertNode = a[i]; // 设定欲插入的数值
- j = i - 1; // 欲插入数组的开始位置
- // 找适当的插入位置
- while (j >= 0 && InsertNode < a[j]) {
- a[j + 1] = a[j];
- j--;
- }
- a[j + 1] = InsertNode; // 将数值插入
- // 打印目前排序结果
- System.out.print("排序中: ");
- for (k = 0; k < Index; k++)
- System.out.print(" " + a[k] + " ");
- System.out.println("");
- }
- }
- }
运行结果
排序前: 10 32 1 9 5 7 12 0 4
排序中: 10 32 1 9 5 7 12 0 4
排序中: 1 10 32 9 5 7 12 0 4
排序中: 1 9 10 32 5 7 12 0 4
排序中: 1 5 9 10 32 7 12 0 4
排序中: 1 5 7 9 10 32 12 0 4
排序中: 1 5 7 9 10 12 32 0 4
排序中: 0 1 5 7 9 10 12 32 4
排序中: 0 1 4 5 7 9 10 12 32
排序后: 0 1 4 5 7 9 10 12 32