演算法學習之插入演算法

2021-06-28 05:28:39 字數 720 閱讀 8167

插入演算法其實很簡單,其原理就像我們玩的撲克一樣;在桌子上放著一疊雜亂無序的撲克牌(相當於需要我們排序的初始化陣列),然後拿起第一張,放到左手上(只有一張, 不需要排序的說);然後拿起第二張,從右往左進行比較大小,如果小,就放到第一張牌的左邊,如果大,就放到第一張牌的右邊;然後拿起第三張,同上, 從右往左進行比較大小,安插第三張牌;以此迴圈。

有人要問了, 為啥從右往左,不是從左往右?咳咳,在現實排序撲克牌,可以從左往右,也可以從右往左,甚至可以從中間查詢,這都要歸功於我們偉大的大腦運算(只是我們感覺不到而已);在插入演算法中,我們為了不在申請多餘的記憶體安放我們的需要排序的陣列,就在原陣列上進行排序,那麼問題就來了, 從右往左進行比較大小,當插入的數值比左邊的數值要小,僅僅需要將左邊的數值賦值到右邊的數值,以此類推迴圈。

下面是例子,請大家多多指教;

/*

*@ filename : insert-sort.cpp**/

/*include*/

#include #include #include int main(void)

; for (int i = 1; i != sizeof(arr) / sizeof(int); i++)

arr[j + 1] = value;

} for (int i = 0; i != sizeof(arr) / sizeof( int ); i++)

return 0;

}

演算法學習之插入排序

1.演算法思想 alg s idea 從左至右有序 第乙個位置只有乙個元素,當然有序 每次2 j n 將元素aj插入到有序的a 1.j 1 中,並使a 1.j 有序 直至j n 2.alg偽 類c,不可複製直接執行 insertion sort a 將a 1.n 有序 for j 2 to n do...

演算法學習之插入排序

插入排序是一種最簡單的排序方法,對於少量元素的排序,它是乙個有效的演算法。其實現過程使用雙層迴圈,外層迴圈每次 插入乙個新的元素 內層迴圈將 新插入的數 與前面已排好序的部分進行比較,找到插空位置,形成新的有序數列。插入排序的平均時間複雜度是 o n 2 空間複雜度為常數階 o 1 具體時間複雜度和...

演算法學習筆記之插入排序

插入排序是一種簡單直觀且穩定的排序演算法。它的工作方式非常像人們排序一手撲克牌一樣,開始時,我們的左手為空並且桌子上的牌面朝下。然後,我們每次從桌子上拿走一張牌並將它插入左手正確的位置,為了找到一張牌的正確位置,我們從右到左將它與已在手中的每張牌進行比較。需求 排序前 排序後 排序原理 1.把所有的...