| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 490 人关注过本帖
标题:起泡排序的运行时间
只看楼主 加入收藏
s308182454
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2012-3-9
结帖率:50%
收藏
 问题点数:0 回复次数:0 
起泡排序的运行时间
程序代码:
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct
{int key;
}rectype;
void bubblesort(rectype r[],int n){
int i,j,noswap;
rectype temp;
for(i=0;i<=n-2;i++)
{noswap=true;
for(j=n-2;j>=i;j--)
if(r[j+1].key<r[j].key)
{temp=r[j+1];
r[j+1]=r[j];
r[j]=temp;
noswap=false;
}
if(noswap)  break;
}
}
void insertsort(rectype r[],int n)
{int i,j,m;
for(i=2;i<n;i++)
{
    r[0]=r[i];
   j=i-1;
   while(r[0].key<r[j].key)
      r[j+1]=r[j--];
      r[j+1]=r[0];
}

}
int main(){
{rectype a[100000];
int i,t,n=100000;
clock_t start, finish,start1,finish1;
double value,duration;
srand(time(0));
for(i=0;i<100000;i++)
{t=rand()%100000+1;
a[i].key=t;}
start=clock();
insertsort(a,n);
finish=clock();
value= (double)(finish - start) / CLOCKS_PER_SEC;
cout<<value<<endl;
start1=clock();
bubblesort(a,n);
finish1=clock();
duration=(double)(finish1-start1)/ CLOCKS_PER_SEC;
cout<<duration<<endl;
getchar();   
}
}
写的乱了点,运行了4次程序发现直接选择排序的运行时间在11秒3左右,冒泡排序的时间从7秒多到19秒多不等,这两个排序的平均时间复杂度都是O(n&sup2;),为什么冒泡排序的时间变化这么大呢,是不是程序有舍呢么问题呢,求高手指点
搜索更多相关主题的帖子: 时间 color 
2012-05-09 22:12
快速回复:起泡排序的运行时间
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021066 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved