2020.2.7
13:30
思路:從第乙個值開始,向前面的插入,後面的數字在向前面插入的時
候,前面的數字一定已經排好序了,找乙個位置將這個數再放入到正確
的位置。
**演示:
public
static
void
main
(string[
] args)
; system.out.
println
("排序之前:");
for(
int i=
0;i)for
(int i=
0;i)else
}
思路:對陣列的排序=對陣列中0到倒數第二個元素排序+倒數第乙個元
素插入到這個有序的部分中去。並且,,記住每乙個遞迴的步驟:
①:找重複 ②:設引數 ③:找出口
**演示:
public
static
void
sort
(int
arr,
int k)
sort
(arr,k-1)
;//對從0到倒數第二個元素排序
int x=arr[k]
;int index=k-1;
//設定指標
while
(index>-1
&& x
) arr[index+1]
=x;//指標的邊界
}
結果:
草稿:
兩種方法比較**演示:
package lanqiaoknowledgepractise;
//插入排序
public
class
insertionsortingtest
sort
(arr,k-1)
;//對從0到倒數第二個元素排序
int x=arr[k]
;int index=k-1;
//設定指標
while
(index>-1
&& x
) arr[index+1]
=x;//指標的邊界
}//從第乙個數字開始向前插入,後面的數字在向前插入的時候,前面的數字一定已經排好序了,找乙個位置將這個數放入正確的位置
public
static
void
main
(string[
] args)
; system.out.
println
("排序之前:");
for(
int i=
0;i)for
(int i=
0;i)else}}
system.out.
println()
; system.out.
println
("排序之後:");
for(
int i=
0;i) system.out.
println
("*****************************");
int[
]arr=
; system.out.
println
("*******排序前***********************");
for(
int i=
0;i) system.out.
println()
; system.out.
println
("**************排序後****************************");
收工午休
遞迴(3) 遞迴形式進行插入排序
分析 對陣列的0 倒數第乙個排序等價於 對陣列的0 倒數第二個元素,這部分排序 然後把最後乙個元素插入到這個有序的部分中。public class 13遞迴形式進行插入排序 insertsort arr,8 for int i 0 i arr.length i static void inserts...
遞迴基礎練習之插入排序的遞迴形式
首先確定insertsort的巨集觀語義是對以陣列的0至第n索引項進行插入排序 假設要呼叫insertsort arr,n 可以得到規模更小的子問題 1.對陣列的0至第n 1索引項進行插入排序 2.將陣列的第n索引項插入到有序陣列中 聚焦函式的巨集觀語義,可以更好地寫出遞迴函式。對0至n索引項進行插...
陣列排序 3 遞迴插入排序
目錄 演算法思想 實現 時間複雜度 先將最後乙個元素插入前 n 1 個元素組成的有序陣列arr1中,整個陣列便排好序了。但是在此之前要將陣列arr1排好序 將倒數第二個元素插入前 n 2 個元素組成的有序陣列arr2中,陣列arr1便排好序了。但是在此之前要將陣列arr2排好序 將倒數第三個元素插入...