不积跬步无以至千里
插入算法是最容易实现的排序算法之一,在对效率并无太高要求时可以使用。
算法复杂度为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;
}
}
}
}