You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

递归归并/快速排序处理大数组栈溢出问题解决方案问询

递归排序栈溢出问题求助

我正在实现递归版归并排序与快速排序以测试效率,处理规模小于10^5的int数组时运行正常,但数组规模超过该值时崩溃,报错:Process finished with exit code -1073741571 (0xC00000FD)。查询后得知这是栈溢出问题,即栈无法容纳所有递归调用,尝试在Clion中增大堆内存但无效。

快速排序实现代码

int devide(int t[], int low, int high){
int devide(int t[], int low, int high){

    
    int pivot_value = t[high];

    int i = low;

    for(int j =low;j<high;j++){

        if(t[j]<=pivot_value){
            swap(&t[j],&t[i]);
            i++;
        }
    }

    swap(&t[i],&t[high]);
    return i;
}

void quicksort_recursion(int array[], int low, int high){

    if(low < high) {
        int pivot_index = devide(array, low, high);
        quicksort_recursion(array, low, pivot_index - 1);
        quicksort_recursion(array, pivot_index + 1, high);
    }

}

void quicksort_last(int t[], int length){
    quicksort_recursion(t,0,length-1);

}

归并排序实现代码

void merge_sorted_arrays(int a[], int l, int m, int r) {
    int left_length = m - l + 1;
    int right_length = r - m;

    int temp_left[left_length];
    int temp_right[right_length];

    int i, j, k;

    for (i = 0; i < left_length; i++)
        temp_left[i] = a[l + i];

    for (i = 0; i < right_length; i++)
        temp_right[i] = a[m + 1 + i];


    for (i = 0, j = 0, k = l; k <= r; k++) {
        if ((i < left_length) &&
            (j >= right_length || temp_left[i] <= temp_right[j])) {
            a[k] = temp_left[i];
            i++;
        }

        else {
            a[k] = temp_right[j];
            j++;
        }
    }
}

void merge_sort_recursion(int a[], int l, int r)
{
    if (l < r)
    {
        int m = l + (r - l) / 2;
        merge_sort_recursion(a, l, m);
        merge_sort_recursion(a, m + 1, r);
        merge_sorted_arrays(a, l, m, r);
    }
}

void merge(int a[], int length)
{

    merge_sort_recursion(a, 0, length - 1);

}

我想了解是否存在基于递归的栈溢出解决办法,或是必须将其改为迭代实现。

PS:swap(int *x, int *y)是用于交换数组中两个元素的函数。


内容的提问来源于stack exchange,提问作者Faycal Faycal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 07:30:52