问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容
undefined reference to `choose_sort'
collect2.exe: error: ld returned 1 exit status
我想要达到的结果
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define count 100
void check(int []);
void quick_sort(int [],int,int);
void pop_sort(int[],int,int);
void choose_sort(int[],int,int);
int main(){
int a[count],begintime,endtime;
char*ch[3]={
"quick_sort","pop_sort","choose_sort",
};
void(*p[3])(int a[],int,int)={
quick_sort,pop_sort,choose_sort,
};
srand(time(NULL));
for(int i=0;i<count;i++)
{
a[i]=rand()%150;
}
for(int i=0;i<3;i++)
{
begintime=clock();
(*p[i])(a,0,count);
endtime=clock();
check(a);
printf("%s'running time is %dms\n",ch[i],endtime-begintime);
}
return 0;
}
void quick_sort(int a[count],int left,int right)
{
int temp,pivot,i=0,j=right;
pivot = a[(left+right)/2];
while(i<=j)
{
while(a[i]<pivot)
{
i++;
}
while(a[j]>pivot)
{
j--;
}
if(i<=j)
{
temp=a[j];
a[j]=a[i];
a[i]=a[j];
i++;
j--;
}
}
if(i<right){
quick_sort(a,i,right);
}
if(j>left){
quick_sort(a,left,j);
}
}
void choose_choose(int a[count],int m,int n)
{
for(int i=0;i<count;i++){
for(int j=count;j>i;j--){
if(a[j]<a[i]){
a[i]=a[i]+a[j];
a[j]=a[i]-a[j];
a[i]=a[i]-a[j];
}
}
}
}
void pop_sort(int a[count],int m,int n)
{
for(int i=count;i>0;i--)
{
for(int j=0;j<i-1;j++ )
{
if(a[j]>a[j+1]){
a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
}
}
}
}
void check(int a[count])
{
for(int i=0;i<count;i++){
printf("%d ",a[i]);
}
}