直接插入算法是将N个带排序的元素看做成一个有序表和一个无序表。
每次从无序表中取一个元素和有序表比较,重复N-1次完成排序。
直接上代码:
1 package test; 2 3 public class Test { 4 public static void main(String[] args) { 5 int[] data = new int[] { 23, 1, 5, 7, 45, 26, 77, 3, 2 }; 6 showArray(data); 7 sortArray(data); 8 showArray(data); 9 } 10 11 //直接插入排序 12 public static void sortArray(int[] data) { 13 for (int i = 1; i < data.length; i++) { 14 int temp = data[i]; 15 if (data[i] < data[i - 1]) { 16 int j = i - 1; 17 18 while (j >= 0 && temp < data[j]) { 19 data[j + 1] = data[j]; 20 j--; 21 } 22 data[j + 1] = temp; 23 } 24 } 25 } 26 //遍历数组元素 27 public static void showArray(int[] data) { 28 for (int i = 0; i < data.length; i++) { 29 System.out.print(data[i] + " "); 30 } 31 System.out.println(); 32 } 33 }
时间: 2024-11-04 16:26:02