【发布时间】:2014-02-16 21:42:26
【问题描述】:
这是一项学校作业。
本质问题是获取大量数字,在其上实现多种不同类型的 shell 排序,分析复杂性等等。
我有一个使用选择排序编写的 shell 排序(我知道它效率低下,这就是重点) 但我无法测试它。
我的主文件名为sorting_main.c,函数defs在sorting.c中。
我使用这些命令编译然后运行它。
gcc -Werror -Wall -Wshadow -O3 sorting.c sorting_main.c -o proj1
项目完成后,我就可以使用这个命令来运行它了……
./proj1 s input.txt seq.txt output.txt
我现在可以运行它,如果我在主程序中手动定义测试参数,则终端中只需 ./proj1。这就是我卡住的地方,我不知道我是否在制作要测试的东西时做错了什么,或者我的实现是否存在致命缺陷。 我的目标是测试我的选择排序...... 这是我的主要内容:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
//Function Declarations////
long *Load_File(char *Filename, int *Size);
int Save_File(char *Filename, long *Array, int Size);
void Shell_Insertion_Sort(long *Array, int Size, double *N_Comp, double *N_Move);
void Shell_Selection_Sort(long *Array, int Size, double *N_Comp, double *N_Move);
int Print_Seq(char *Filename, int Size);
int main()
{
long int *Array[11];
*Array[0]=9;
*Array[1]=80;
*Array[2]=4;
*Array[3]=1;
*Array[4]=5;
*Array[5]= 3;
*Array[6]= 7;
*Array[7]=15;
*Array[8]= 9;
*Array[9]= 5;
Shell_Selection_Sort(Array[10],11,0,0);
/*
int i = 0;
for(i=0;i<=10;i++)
{
printf("%li\n",*Array[i]);
}
*/
return 0;
}
再次,我在终端中使用此命令进行编译:
gcc -Werror -Wall -Wshadow -O3 sorting.c sorting main.c -o proj1
我只收到 2 条警告说我还没有使用计算值(这是预期的)
然后我使用这个运行:
./proj1
有没有人看到我会在
中收到段错误的任何原因#0 0x000000000040096b in Shell_Selection_Sort ()
#1 0x00000000004005d7 in main ()
我觉得这应该是一个简单的错误......
【问题讨论】: