您的位置:首页 > 编程语言 > C语言/C++

【算法导论】2-1 插入排序insertion-sort.cpp

2015-05-02 17:18 253 查看
#include <iostream>
using namespace std;
//插入排序算法,书p10 正确性证明见p11 时间复杂度o(n平方)
int main1()
{
int a[10]={5,6,2,1,3,7,8,10,9,4};
int time=0;
int j=0,i=0;
int key=0;
for (j=1;j<10;j++)
{
key=a[j];
i=j-1;
while(i>=0 &&a[i]>key)
{
time++;
a[i+1]=a[i];
i=i-1;                                              //实际上是完成交换
}
a[i+1]=key;
for (i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
for (i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<time<<endl;

}

//测试输出如下:
//5 6 2 1 3 7 8 10 9 4
//2 5 6 1 3 7 8 10 9 4
//1 2 5 6 3 7 8 10 9 4
//1 2 3 5 6 7 8 10 9 4
//1 2 3 5 6 7 8 10 9 4
//1 2 3 5 6 7 8 10 9 4
//1 2 3 5 6 7 8 10 9 4
//1 2 3 5 6 7 8 9 10 4
//1 2 3 4 5 6 7 8 9 10
//1 2 3 4 5 6 7 8 9 10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: