遞迴基礎練習之插入排序的遞迴形式

2021-09-08 20:20:23 字數 758 閱讀 8755

首先確定insertsort的巨集觀語義對以陣列的0至第n索引項進行插入排序

假設要呼叫insertsort(arr, n),可以得到規模更小的子問題

1.對陣列的0至第n - 1索引項進行插入排序

2.將陣列的第n索引項插入到有序陣列中

聚焦函式的巨集觀語義,可以更好地寫出遞迴函式。

// 對0至n索引項進行插入排序

private

static

void

insertsort

(int

arr,

int n)

insertsort

(arr, n -1)

;int temp = arr[n]

;int index = n;

while

(index >

0&& temp < arr[index -1]

) arr[index]

= temp;

}

// 對前n項進行排序

private

static

void

insertsort

(int

arr,

int n)

arr[index]

= temp;

}}

遞迴(3) 遞迴形式進行插入排序

分析 對陣列的0 倒數第乙個排序等價於 對陣列的0 倒數第二個元素,這部分排序 然後把最後乙個元素插入到這個有序的部分中。public class 13遞迴形式進行插入排序 insertsort arr,8 for int i 0 i arr.length i static void inserts...

遞迴形式改寫插入排序

2020.2.7 13 30 思路 從第乙個值開始,向前面的插入,後面的數字在向前面插入的時 候,前面的數字一定已經排好序了,找乙個位置將這個數再放入到正確 的位置。演示 public static void main string args system.out.println 排序之前 for ...

插入排序(binary 遞迴法)

因為插入演算法實質是與有序的陣列依次比較,所以乙個數與有序陣列比較並排序的做法可以用二分法來做到。def insert binary sort x result x 0 for i in range 1,len x result my method result,x i return result ...