這個過程,也是乙個自我提高的過程。
我開始自已寫,while(in > 0 && a[in - 1] >= temp )這裡總有問題。
後來仔細想想,也是,如果in>0放在後面,那麼&&之後可能會邏輯短路。且in-1先執行,再判斷in,就會出現陣列下標in-1等於-1越界的情況。所以,in>0必放前面。
第二,將&&更換成&行不行?也不行。因為&不會邏輯短路,就算in>0不成立,它一樣會執行in-1的陣列下標判斷,一定會出錯。
真的是一步一小心呀。在規則內,可以橫行,但稍稍越出規則一步,都是不允許的。
public為了仔細看到對in位置的查詢,我加了兩個輸出,更能理解**的執行邏輯過程。void
insertionsort()
system.out.println("\t---after sort : \t" +in);
a[in] =temp;}}
插入排序(Java)
演算法思想 每趟將乙個待排序的關鍵字,按照其關鍵字值的大小插入到已經排好的部分序列的適當位置上,直到插入完成。演算法 static void insertion sort int unsorted unsorted j temp public static void main string arg ...
java插入排序
簡單的講就是把乙個數字放在一串已經排好順序的陣列中,放進去後還要使得陣列排序完整。那麼,就是1找位置,2填數字。這就是我的思路。下面是插入排序的類 package algorithm public class insertion sort return key public void display...
插入排序 java
插入排序是一種簡單且高效的比較排序演算法。在每次迭代過程中演算法隨機的從輸入序列中移出乙個元素,並將該元素插入待排序列的正確位置。重複該過程,知道所有的輸入元素都被選擇一次。優點 實現簡單。資料量較少時效率高。適應性 如果輸入序列已經與排序 可能是不完全的預排序 則時間複雜度為o n d d是反轉的...