自学笔记之一 插入排序
输入:个数为n的序列<a1,a2,…,an>.
输出:有序数列<a1’,a2’,a3’…an’>.
图1-1为插入过程的实际过程:
图1-1 对数组A=<5,2,4,6,1,3>进行插入排序,其中黑色元素代表每次要插入的key值
伪代码:
下面是实现对数组A排序的C++代码:
#include<iostream>
using namespace std;
//插入排序
void insertion_sort(int *p,int n)
{
int j,key,i;
for(j=1;j<n;j++)
{
key=p[j];
i=j-1;
while(i>=0&&p[i]>key)
{
p[i+1]=p[i];
i=i-1;
}
p[i+1]=key;
}
}
int main()
{
int A[6]={5,2,4,6,1,3};
insertion_sort(A,6);
//输出排序好的数组
for(int i=0;i<6;i++)
cout<<A[i]<<" ";
cin.get();//等待输入,用以显示结果
}
插入排序应该是最简单的排序算法,但时间复杂度为O(n^2),后续我会学习各种排序算,开始我的算法之旅。