我想比较三种排序算法的运行时间,但是程序运行不了

问题遇到的现象和发生背景
用代码块功能插入代码,请勿粘贴截图
运行结果及报错内容

undefined reference to `choose_sort'
collect2.exe: error: ld returned 1 exit status

我想要达到的结果
#include
#include
#include
#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[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]while(a[j]>pivot)
        {
            j--;
        }
        if(i<=j)
        {
            temp=a[j];
            a[j]=a[i];
            a[i]=a[j];
            i++;
            j--;
        }
    }
    if(i_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;ifor(int j=count;j>i;j--){
            if(a[j][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;j1;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"%d ",a[i]);
    }
}

void choose_choose(int a[count],int m,int n)
上面申明的是choose_sort函数啊

void choose_sort(int[],int,int); 函数只声明了没定义。
如果62行的函数是这个,就是写错函数名字了。