M_iilk 2021-12-21 23:58 采纳率: 85.7%
浏览 65

C语言 函数名相同的两个函数合法吗?

在快速排序算法中遇到的问题:QuickSort的递归函数和主调用函数名称相同,我自己调试是报错的

书上的代码是这样的:

// Partition是判断分割元素下标的函数
int Partition(List* list, int low, int high)
{
    int i =low,j = high + 1;
    Entry pivot = list ->D[low];                //pivot是分割元素
    do
    {
        do i++;        while(i<=high && list->D[i].key < pivot.key);    //i前进
        do j--;        while(list->D[j].key>pivot.key);        //j前进
        if(i < j )    Swap(list->D,i ,j );
    }while(i < j);
    Swap(list->D,low, j);
    return j;                                    //此时j是分割元素下标
}
//快速排序算法
void QuickSort(List *list, int low, int high)    //快速排序的递归函数
{
    int k;
    if(low < high)                                //当前待排序序列至少包含两个元素
    {
        k = Partition(list, low ,high);
        QuickSort(list, low, k-1);
        QuickSort(list, k+1, high);
    }
}

void QuickSort(List *list)                        //快速排序算法的主调用函数
{
    QuickSort(list, 0 ,list->n-1);
}

  • 写回答

4条回答 默认 最新

  • _GX_ 2021-12-22 00:04
    关注

    C语言不合法,C++合法

    评论

报告相同问题?

问题事件

  • 创建了问题 12月21日