原理视频:
核心思想:插入排序(英语:Insertion sort)是一种简单直观的排序算法。它的工作原理为将待排列元素划分为“已排序”和“未排序”两部分,每次从“未排序的”元素中选择一个插入到“已排序的”元素中的正确位置。与插入排序类似的例子就像是打牌,每拿到一张牌,就将其插入到正确的位置。
基本性质
插入排序是一种稳定的排序算法。
插入排序的最优时间复杂度为n,在数列几乎有序时效率很高。 插入排序的最坏时间复杂度和平均时间复杂度都为n平方级别。
#include<iostream>
using namespace std;
int a[20];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for (int i=2; i<=n;i++)
{
int f=a[i];
int j=i-1;
while (j>0 && a[j]>f)
{
a[j+1]=a[j];
j--;
}
a[j+1]=f;
}
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}