首页 新闻 搜索 专区 学院

用两种排序算法对数据排序,并记录每种的时间,出现错误[Error] ld returned 1 exit status

0
悬赏园豆:100 [待解决问题]

问题:文本data.txt中存在着1万个正整数数据,请利用你所了解的至少两种排序算法对此数据进行排序,并记录每种排序算法所消耗的时间。(以下采用得是选择排序和堆排序)
要求:
1)从文件data.txt中读出数据,存放在一维数组a中;
2)请选择执行两种排序算法(同一种类型),并进行执行时间上的比较。

include <stdio.h>

include <time.h>

include <stdlib.h>

define PER_SECOND 1000 //一秒

int a[100]; //全局数组
const int n = 100;//一万个数据

//函数声明
void ReadArray(char*filename); //读文件

double SelectSort(); //选择排序
double HeapSort(); //堆排序
//排序函数
void SeSort(int *a,int n); //选择排序
void PercDown(int *a, int p, int N);
void HepSort(int *a, int n); //堆排序
void Print(int *a,int n);
void swap(int *p, int *q);

int main(){
double t_sort=0,t_sum_in=0,t_sum_sh=0,t_sum_bb=0,t_sum_qc=0,t_sum_ss=0,t_sum_heap=0;
int cnt; //为了让时间更准确,求3次的平均值
cnt = 3;
while(cnt--){
t_sum_ss += SelectSort();
}
printf("选择排序:%lfms\n",t_sum_ss/3);
cnt = 3;
while(cnt--){
t_sum_heap += HeapSort();
}
printf("堆排序:%lfms\n",t_sum_heap/3);
return 0;
}
//函数实现
//将数据读到数组a中
void ReadArray(char*filename){
FILE *fp;
if(!(fp = fopen(filename,"r"))){
printf("Cannot open file\n");
exit(0);
}
int i = 0;
while(!feof(fp)){
fscanf(fp,"%d\n",&a[i++]);
}
fclose(fp);
}

//以选择排序算法为例,示例排序算法调用及时间计算
double SelectSort(){
ReadArray("D://程序编写//shiyan7//data.txt");
clock_t begin,end;
begin = clock();
SeSort(a,n); //调用选择排序算法
end = clock();
return (double)(end - begin);
}
void swap(int p,int q)
{
int t;
t=
p;
p=q;q=t;
}

void SeSort(int a[ ],int n)
{
int i,j,min;
for(i=0;i<n-1;i++){
min=i;
for(j=i+1;j<n;j++)
if(a[j]<a[min])
min=j;
Swap(&a[i],&a[min]);
}
}

待发芽的种子的主页 待发芽的种子 | 初学一级 | 园豆:3
提问于:2020-07-11 13:47
< >
分享
所有回答(1)
0

谷歌搜下呗,刚搜了下,大概这类错误是根本编译都没通过,需要改变编译方式啥的?搜搜吧。

顾晓北 | 园豆:10219 (专家六级) | 2020-07-12 18:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册