演算法定義是
是將陣列中所有的元素分別和前面已經排序好的元素相比較,
如果後面選擇的元素比已排序的元素小,則交換位置,直至比較完成。
arr = [23,12,-2,5,66,21]
排序步驟:
①取陣列的第乙個元素23為已經排序好的元素,將第乙個元素看作有序序列
有序部分:arr[0]
無序部分:arr[1:]
②取陣列的第二個元素和有序部分的元素進行比較,12<23,所以交換倆個元素的位置,形成新的有序陣列
有序部分:arr[0,1]
無序部分:arr[2:]
③依次類推,依次拿無序部分的元素和有序部分的元素進行比較,從而得到有序的陣列。
**如下:
def
insertsort
(arr)
: i =
1while i <
len(arr)
: j = i
while j >=1:
if arr[j]
< arr[j-1]
: arr[j-1]
,arr[j]
= arr[j]
,arr[j-1]
j -=
1else
:break
i +=
1return arr
arr =[23
,12,-
2,5,
66,21]
print
(「排好序的陣列:」,insertsort(arr)
)
執行結果:
排好序的陣列:[-
2,5,
12,21,
23,66]
基礎排序演算法 插入排序
插入排序,就是如果有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜...
演算法基礎 排序演算法 插入排序
插入排序也是非常容易理解的排序演算法,這篇文章介紹一下排序的主要要點和實現,插入排序的主要做法是外層迴圈中選定插入元素,內層迴圈移動並空出插入位置,返回外層迴圈進行插入。選擇排序的主要要點如下所示 n個元素,陣列元素從0開始計數 void insert sort int arr,int num 加上...
基礎演算法 插入排序
參考書籍 演算法導論 第二版 演算法基礎 插入排序演算法 演算法導論 第二版書中一來就提到了插入排序演算法,以撲克牌摸牌來作為比喻,剛開始按照偽 編寫時,容易忽略乙個問題,即用臨時變數來實現陣列中資料的交換問題。由於該演算法確實是演算法中最容易理解與掌 握的,所以不作過多解釋,以下是 include...