插入排序算法

不積跬步無以至千里


插入算法是最容易實現的排序算法之一,在對效率並無太高要求時可以使用。

算法複雜度爲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;
			}
		}
	}
}

点赞