插入演算法,顧名思義,是需要往原陣列中進行插入新的陣列元素來進行的一種操作。而這種操作,有兩種方式來執行,邏輯順序不同,也導致了難易度不同。分別是:
方式一:先找到並確定位置,然後在這個位置上插入需要插入的數;
方式二:先將數插入到陣列中,然後再通過移動位置來達到目的;
今天,我主要來講先確定位置並移動陣列中的數,然後將數插入的方法。
需要注意的是,陣列在最開始經歷過宣告和定義以後,其大小就無法改變了,但是如果需要達到插入的目的,那顯然會使得陣列無法容納多出來的乙個數。那麼要怎麼避免這種情況出現呢?
其實很簡單的乙個方法就能實現這個目的。下面我們通過乙個例子來加以說明:
下一步就是先進行乙個簡單的排序,可以用arrays.sort的方法將陣列以公升序的方式排一下序。
接下來我們在輸入了想要插入的數以後就要開始尋找這個數應該所在的位置了,我們在此處用index這個引數來幫助我們記錄儲存找到的位置。
通過迴圈語句,將score陣列中的元素,從下標為0開始逐個向上找著我們的插入數去比大小,如果插入數大就繼續往後比,直到遇到乙個比插入數大的。那麼此時,用index來記錄這個比它大的元素的下標數,插入數插入位置的下標就理所當然的是index-1;
然後,從陣列的index-1開始到下標為0為止的所有陣列元素都向左移動一位,然後再通過賦值的方式把輸入數賦值到index-1的位置。如此這般就完成了乙個數的插入。
演算法筆記 排序演算法 插入排序
插入排序的方法就類似於 在鬥地主發牌時,一張張牌地拿起並插入到自己手中的牌堆中。假設陣列 arr 有n個無序元素。每一次的插入就是在區間 0,i 中找到 arr i 1 對應的位置並插入。0,i 就相當於我們手中牌堆,arr i 1 就相當於下一張要插入的牌。直到沒有下乙個要插入的數,該陣列就變得有...
演算法筆記(十)插入排序
插入排序 1 2 3 4 5 6 理解 插入排序 1 從1,2兩個元素開始,比較1,2元素大小,小的則交換到乙個位置 2 2,3兩個元素,比較兩個元素大小,若2小於3則不變,否則2元素向後一位 然後,在比較1和3元素,若1小,將3插入到2位置,若1大於3則,3插入到1位置,1,2兩個元素向後移一位。...
演算法導論學習筆記 插入排序
用遞迴的方法實現的插入排序演算法 分解 n個元素的排序看成是把第n個元素插入到已排好序的n 1個元素中 解決 對n 1個元素以次遞迴 合併 用插入排序將第n個元素插入到排好序的n 1個元素序列中 public class insertsort arr i 1 key 插入排序的外層函式 param ...