總體思想:
由少入多的來說
int a = ;
已插入排序的思想來說,角標為0,即5自然沒什麼好的,當到3的時候,把3記錄下來,temp = 3,將陣列中的3換成5,a[1] = 5,你可以把它理解成將前面的資料往後挪了一位,最後將陣列中5的位置換成3
int a = ;
這裡,我們跨過上面的步驟,把它看成 int a = , 同樣的記錄住4,temp =4,在往後依次複製的過程中,發現3<4,那麼直接就跳過去,最後是 ;
int a = ;
int a = ,記錄2 temp = 2,5>2所以a[2] = a[1],3>2所以a[1] = a[0]
寫一段偽**:
int temp = 0;
for (int i = 0; i < a.length; i++)
//複製完畢,將temp值賦值給最小角標處
a[j+1] = temp;
}
private
void
sort() ;
int temp = 0;
for (int i = 0; i < a.length; i++)
a[j+1] = temp;
}for (int i : a)
}
排序演算法 插入排序 直接插入排序
package 插入排序 直接插入排序 從後向前找到合適位置後插入 穩定 基本思想 每步將乙個待排序的記錄,按其順序碼大小插入到前面已經排序的字序列的合適位置 從後向前找到合適位置後 直到全部插入排序完為止。public class 直接插入排序 system.out.println 排序之前 fo...
排序演算法 插入排序 直接插入排序
當插入第i i 1 個元素時,前面的v 0 v i 1 等i 1個 元素已經有序。這時,將第i個元素與前i 1個元素v i 1 v 0 依次比較,找到插入位置即將v i 插入,同時原來位置上的元素向後順移。在這裡,插入位置的查詢是順序查詢。直接插入排序是一種穩定的排序演算法,其實現如下 public...
排序演算法 直接插入排序
思想 每次從無序表中取出第乙個元素,把它插入到有序表的合適位置,使有序表仍然有序。第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從前向後掃瞄,把第三個數按大小插入到有序表中 依次進行下去,進行了 n 1 趟掃瞄以後就完成了整個排序過程。演算法複雜度 如果目標是把...