插入排序
插入排序
. . . . . .
定义
插入排序(Insertion sort)是一种简单直观的排序算法。它的工作原理为将待排列元素划分为「已排序」和「未排序」两部分,每次从「未排序的」元素中选择一个插入到「已排序的」元素中的正确位置。
稳定性
插入排序是一种稳定的排序算法。
时间复杂度
插入排序的最优时间复杂度为 O(n),在数列几乎有序时效率很高。
插入排序的最坏时间复杂度和平均时间复杂度都为 O(n^2)。
代码实现
#include <bits/stdc++.h>
using namespace std;
int a[10] = {0,5,4,3,2,1};
int main()
{
for(int i = 2;i <= 5;i++)
{
int i1 = a[i];
int j;
for(j = i - 1;j >= 1 && a[j] > i1;j--)
{
a[j + 1] = a[j];
}
a[j + 1] = i1;
}
for(int i = 1;i <= 5;i++) cout << a[i] << " ";
return 0;
}

浙公网安备 33010602011771号