c - 以下选择排序算法有什么问题
问题描述
void main()
{
int a[] = { 10, 3, 4, 2, 1, 0 };
int i = 0;
int temp_index;
int temp_min;
int temp;
a[i];
int j;
a[j];
int n = sizeof(a) / sizeof(int);
for (; i < n - 1; i++)
{
int temp_min = i;
int j = i + 1;
for (; j < n; j++)
{
if (a[i] > a[j])
{
temp_min = j;
}
}
int temp = a[temp_min];
a[temp_min] = a[i];
a[i] = temp;
}
int k = 0;
for (; k < n; k++)
{
printf("%d", a[k]);
}
}
解决方案
你比较
if (a[i] > a[j]) {
temp_min = j;
}
代替
if (a[temp_min] > a[j]) { ... }
推荐阅读
- r - 如何对ftable中的列和行进行排序
- python - 重命名列表中的python重复元组
- html - Firefox 开发人员工具中的 html 标签上的随机短语?
- keras - 提前停止的 Keras 训练:当数据分布时它是如何工作的?
- sql - 为什么 Firebird 中最后插入的行没有显示在表格末尾
- java - 如何使用 Java 在输出中保留空格?
- power-automate - Power Automate 创建自定义存储桶 ID 并在其中创建任务
- java - 覆盖 PNG 时的奇怪行为
- hadoop - 是什么导致 Hadoop 服务器(以及一般情况下)中的数据表“损坏”?
- python - ValueError: low >= high in np.random.randint [新类型]