C語言插入排序的實(shí)現(xiàn)方法及示例
介紹插入排序
2),空間復(fù)雜度為 O(1),是一種穩(wěn)定的排序算法。
實(shí)現(xiàn)插入排序
1. 基本思路
插入排序的基本思路是將待排序序列分成已排序和未排序兩部分,從未排序序列中取出一個(gè)元素,在已排序序列中從后往前掃描,找到插入位置并插入。
2. 代碼實(shí)現(xiàn)
以下是 C 語言實(shí)現(xiàn)插入排序的代碼
```cserttt)
{tp i++)
{p = arr[i]p j--)
{
arr[j + 1] = arr[j]
}p
}
p 為臨時(shí)變量。
3. 算法分析
2),空間復(fù)雜度為 O(1)。由于插入排序每次只需要比較相鄰的兩個(gè)元素,因此它是一種穩(wěn)定的排序算法。
以下是一個(gè)示例,演示了如何使用插入排序?qū)σ粋€(gè)整數(shù)數(shù)組進(jìn)行排序
```cclude
serttt)
tain()
{t arr[] = { 6, 5, 3, 1, 8, 7, 2, 4 }t = sizeof(arr) / sizeof(arr[0])t itf("Before sort") i++)
{tf("%d ", arr[i])
}tf")
sert)
tf("fter sort") i++)
{tf("%d ", arr[i])
}tf")
serttt)
{tp i++)
{p = arr[i]p j--)
{
arr[j + 1] = arr[j]
}p
}
輸出結(jié)果為
Before sort6 5 3 1 8 7 2 4
fter sort1 2 3 4 5 6 7 8
2),空間復(fù)雜度為 O(1),是一種穩(wěn)定的排序算法。