高分求C++实现插入排序源代码(可以运行)

来源:百度知道 编辑:UC知道 时间:2024/06/06 17:34:19
在线等
要求可以进行comparison exchange time的测试 得出结论做出函数的(= =本人完成)
样本大小从2到2的N次方
以求出最佳和最差方案
谢谢了~~
不是单纯的数组赋值 是要系统随机赋值 每次数组内元素数量是2的N次方(N=1,2,3...20) 并且需要运算出时间

下面的sort函数就是插入排序函数(直接插入排序),给你做了一个main函数进行验证

#include<iostream>
#include<iomanip>
using namespace std;
void sort(int a[],int n)//直接插入排序(从小到大)
{
int r;//r是“哨兵”
for(int i=1;i<n;i++)
if(a[i]<a[i-1])
{
r=a[i];
a[i]=a[i-1];
for(int j=i-1;r<a[j];j--)a[j+1]=a[j];
a[j+1]=r;
}
}
void main()
{
int a[10]={1,2,16,45,23,99,18,67,42,10};
sort(a,10);
for(int i=0;i<10;i++)cout<<setw(4)<<a[i];
cout<<endl;
}

插入排序中,双向插入排序的的效率相对好