runtime-error - 计数排序技术对我不起作用。来自 abort(3) (SIGABRT) 的运行时错误中止信号
问题描述
给定的问题是对一个由 0、1 和 2 组成的数组进行排序。我决定使用以下计数排序技术来解决它。
void sort012(int a[], int n)
{
int i,count[3];
memset(count,0,sizeof(count));
for(i=0; i<n ; i++)
++count[a[i]];
for(i=1; i<3; i++)
count[i] += count[i-1];
for(i=n-1; i>=1; i--)
count[i] = count[i-1];
count[0] = 0;
int output[n+1];
for (i=0; i<n; i++)
{
output[count[a[i]]]= a[i];
++count[a[i]];
}
for (i = 0; i<n; ++i)
a[i] = output[i];
}
该算法通过的测试用例很少。但是当我尝试在 Geeksforgeeks 门户上提交它时,它显示运行时错误:Abort signal from abort(3) (SIGABRT)
解决方案
推荐阅读
- android - Ionic - APK Build 总是生成具有旧值的旧 apk
- java - OpenStack4j - 有没有一种方法可以在存储对象中获取对象的临时 url?
- svn - diff 两个源代码目录过滤掉 CVS/SVN 关键字
- scala - Akka Actors 中消息的传递顺序
- python - 改进 ssd 的 numpy 负载性能测试
- outlook - 如何使用 UI 路径或不使用 UI 路径获取 Outlook 通讯录的转储/导出?
- flutter - 按下浮动按钮时,我的应用程序在 launch_url 上引发接受错误
- python - AttributeError:模块 'skopt' 没有属性 'plots' 错误消息
- javascript - Discord.js Collection() 比 Objects 或 Maps 更好吗?
- php - 在不同的mysql表中搜索不同的列