【排序算法】直接插入排序

本篇文章來聊一聊直接插入排序。

基本思想

直接插入排序的原理非常簡單,即:每步將一個待排序的對象,按其關鍵碼大小,插入到前面已經排好序的序列上,直到對象全部插入爲止。

典型的直接插入排序案例就是理撲克牌,你在抓牌的過程中就會對手上的撲克牌進行排序,找到每張牌需要插入的位置,然後進行插入。

圖解排序過程

現有如下的一個序列(以從小到大排列爲例):
在這裏插入圖片描述
綠色部分是序列中的有序片段,我們從下標爲4的位置開始直接插入排序,我們需要定義幾個輔助變量:
在這裏插入圖片描述
變量i表示從i位置開始進行直接插入排序,變量temp用於臨時存儲i位置的元素值,變量j表示從j位置開始往前尋找i位置元素的插入位置,你也可以從下標0位置開始往後找插入位置。

首先讓j位置元素與i位置元素比較,若j位置元素大於i位置元素,則需將j位置元素後移,因爲後移j位置元素會覆蓋i位置元素,所以先將i位置元素存放到變量temp:
html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章