谷歌和 NASA 製作了詹姆斯・韋伯太空望遠鏡 3D 模型,可檢視每一處細節
阿新 • • 發佈:2021-12-13
演算法步驟
將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最後一個元素當成是未排序序列。
從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的後面。)
public int[] sort(int[] sourceArray) throws Exception { // 對 arr 進行拷貝,不改變引數內容 int[] arr = Arrays.copyOf(sourceArray, sourceArray.length); // 從下標為1的元素開始選擇合適的位置插入,因為下標為0的只有一個元素,預設是有序的for (int i = 1; i < arr.length; i++) { // 記錄要插入的資料 int tmp = arr[i]; // 從已經排序的序列最右邊的開始比較,找到比其小的數 int j = i; while (j > 0 && tmp < arr[j - 1]) { arr[j] = arr[j - 1]; j--; }// 存在比其小的數,插入 if (j != i) { arr[j] = tmp; } } return arr;
}