大体含义是这样的,想我们在打扑克牌理牌时的思路一样,来一张扑克牌做一次插入操作:
//编程实现插入排序算法
#include<iostream>
#include <algorithm>
using namespace std;
//函数功能: 插入排序函数
//函数参数: a为一个整数数组,n为数组a的长度
void insertionsort(int *a,int n)
{
for(int i=1;i<n+1;i++)//依次对每个元素循环
{
int key=a[i];//保存本次需要插入的元素
int j;
for(j=i-1;j>=0&&key<a[j];j--)//顺次往前比较
a[j+1]=a[j];//数据元素后移
a[j+1]=key;//将本次需要插入的元素插入到相应的位置
}
}
int main()
{
int n;
cout<<"请输入要排序的数字个数:\n";
cin>>n;
int *a =(int*)malloc(sizeof(int)*n);//定义一个动态的一位数组
cout<<"请输入需要排序的数字:\n";
for(int i=0;i<n;i++)
cin>>a[i];
insertionsort(a,n);
for(int j=0;j<n;j++)
cout<<a[j]<<" ";
return 0;
}