不積跬步無以至千里
插入算法是最容易實現的排序算法之一,在對效率並無太高要求時可以使用。
算法複雜度爲O(n²)。
對於插入算法的理解,可以想象成撲克牌抽排時的操作,每次抽到一張牌,都需要將其放到手牌中合適的位置。插入算法也是這樣,可以先從待排序的數據中提取出一個較小的序列(一般爲1個數據),然後將剩餘的數據一個一個的插入到上一個序列中,待所有數據插入完畢,排序也完成了。
C++實現示例:
void func()
{
int A[] = {5, 2, 4, 6, 1, 3};
for (int i = 1; i < sizeof(A) / sizeof(int); i++)
{
for (int j = 0; j < i; j++)
{
if (A[j] > A[i])
{
int temp = A[j];
A[j] = A[i];
A[i] = temp;
}
}
}
}
Java實現示例:
public static void func() {
int A[] = {5, 2, 4, 6, 1, 3};
for (int i = 1; i < A.length; i++) {
for (int j = 0; j < i; j++) {
if (A[j] > A[i]) {
int temp = A[j];
A[j] = A[i];
A[i] = temp;
}
}
}
}