#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
【算法导论】2-1 插入排序insertion-sort.cpp
最新推荐文章于 2024-06-18 22:14:26 发布