structs
我有一个被调用的数组struct Test testArray[25]
。
Test struct
包含一个名为 的成员int size
。
根据成员,获取另一个数组的最快方法是什么,该数组Test structs
包含原始数组中的所有内容,不包括最大的 5 个size
?不修改原始数组。
注意:数组中的项目数量可能要大得多,只是将其用于测试,并且值可能是动态的。只是想要一个较慢的子集进行测试。
我正在考虑制作原始副本,testArray
然后对该数组进行排序。Test structs
然后返回一个不包含前 5 或后 5的数组(取决于 asc 或 desc)。
或者
遍历testArray
寻找最大的 5,然后制作原始数组的副本,不包括最大的 5。与已找到的最大 5 的数组相比,这种方式似乎会遍历数组太多次。
跟进问题:
这就是我现在正在做的事情,让我知道你的想法吗?
考虑到我感兴趣的最大元素的数量将保持不变,我正在遍历数组并获取最大元素并将其交换到数组的前面。然后我跳过第一个元素,然后寻找最大的元素,然后将其交换到第二个索引中……依此类推。直到我有前 5 个最大的。然后我停止排序,只是将第六个索引复制到一个新数组的末尾。
这样,无论如何,我只遍历数组 5 次。而且我不必对整个事情进行排序。