把它想象成一个对象数组。对象由类型和分数组成。假设我需要相应地对它们进行排序,输入 a 或 b,给出优先级,然后按降序排列从 0 -100 的分数。
[0] [1] [2] [3] [4] [5] [6]
----------------------------------------------
|a | b | a | a | b | b | a |
|50 | 90 | 30 | 80| 20 | 30 | 60 |
----------------------------------------------
排序后会是这个样子。
[0] [1] [2] [3] [4] [5] [6]
----------------------------------------------
| a | a | a | a | b | b | b |
| 80 | 60 | 50 | 30 | 90 | 30 | 20 |
----------------------------------------------
只允许使用 if else 语句,循环例如(for,do while,while),代码量最少。我唯一想到的是通过将 a 组合在一起对数组进行排序,然后按 desc 排序。使用嵌套 for 循环和 if else 语句
char first, second;
for (int i = 0; i < count; i++)
{
first = array[i].getType();
for (int j = 0; j < count; j++)
{
second = array[j].getType();
if ((first.compare('a') == 0) && (second.compare('a') != 0) ||
(first.compare('a') != 0) && (second.compare('a') == 0))
{
Obj temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
然后按 desc 顺序排序。我确信那里有更好的解决方案。任何人都可以分享如何解决这个问题?