m0_72810171 2022-10-09 20:32 采纳率: 77.8%
浏览 47

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

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

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]);
    }
}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-09 20:36
    关注

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

    评论

报告相同问题?

问题事件

  • 创建了问题 10月9日