演算法步驟 將待排序序列第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序列。 從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的後面。 代碼 import java.util.Array ...
演算法步驟
- 將待排序序列第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序列。
- 從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的後面。
代碼
import java.util.Arrays; public class InsertSort { public static void main(String[] args) { int[] arr = {5,3,6,9,4,2,7}; insertSort(arr); System.out.println(Arrays.toString(arr)); } public static void insertSort(int[] arr){ for (int i = 1; i < arr.length; i++){ int insertVal = arr[i];//定義待插入的數 int insertIndex = i - 1;//待插入數的前一個數的下標 while (insertIndex >= 0 && insertVal < arr[insertIndex]){//如果待插入的數比前面的數小就做一個依次覆蓋操作 arr[insertIndex + 1] = arr[insertIndex]; insertIndex--; } //當退出while迴圈就說明插入位置已找到,insertIndex + 1 arr[insertIndex + 1] = insertVal; } } }
本文來自博客園,作者:腹白,轉載請註明原文鏈接:https://www.cnblogs.com/wyh518/