java插入排序兼編碼注意

2021-09-09 04:08:22 字數 542 閱讀 3303

這個過程,也是乙個自我提高的過程。

我開始自已寫,while(in > 0 && a[in - 1] >= temp )這裡總有問題。

後來仔細想想,也是,如果in>0放在後面,那麼&&之後可能會邏輯短路。且in-1先執行,再判斷in,就會出現陣列下標in-1等於-1越界的情況。所以,in>0必放前面。

第二,將&&更換成&行不行?也不行。因為&不會邏輯短路,就算in>0不成立,它一樣會執行in-1的陣列下標判斷,一定會出錯。

真的是一步一小心呀。在規則內,可以橫行,但稍稍越出規則一步,都是不允許的。

public

void

insertionsort()

system.out.println("\t---after sort : \t" +in);

a[in] =temp;}}

為了仔細看到對in位置的查詢,我加了兩個輸出,更能理解**的執行邏輯過程。

插入排序(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是反轉的...