在多个数组中查找最高和最低的数组计数

Finding highest and lowest array count in multiple arrays

我有 10 个 NSMutableArrays,我需要通过计数和 select 具有最低计数的数组的名称 - [array count] 来比较它们。最好和最快的方法是什么?

我试图将所有数组的名称添加到另一个数组中,使用 'for' 方法循环,​​但它不起作用,因为 NSUInteger 与 ID

冲突

一定有更简单的方法,我相信。我只是在 google...

上找不到正确的参考

你能给我指明正确的方向吗?

非常感谢 一种。

首先创建所有数组的计数数组。

比应用快速排序算法

这里是算法的c程序 c program of quicksort

你只需要在第一个参数中传递新创建的数组,第二个参数是 0(零),第三个参数是新创建的数组计数 - 1 在 quickshort 方法中。

获取排序后的数组,然后获取第一个索引是最低计数,最后一个索引是最高计数获取索引并找出哪个数组的计数最高和最低。

如果你不想创建计数数组,那么你可以直接创建数组数组,但是它占用内存,所以最好的方法是创建计数数组。

我找到了解决方案。实际上是两个。将所有 10 个数组的所有计数放入新数组 "integers" 后,找到最小值和最大值很容易:

NSNumber *max=[integers valueForKeyPath:@"@max.self"];
NSNumber *min=[integers valueForKeyPath:@"@min.self"];

NSLog(@"max: %@ min: %@", max, min);

// get indexOfObject value
int indexOfMin = (int)[integers indexOfObject:min];
NSLog(@"Index: %i", indexOfMin);

第二种方法是:

float xmax = -MAXFLOAT;
float xmin = MAXFLOAT;
for (NSNumber *num in integers) {
    float x = [num floatValue];
    if (x < xmin) xmin = x;
    if (x > xmax) xmax = x;

    NSLog(@"integer: %f",x );
}

感谢您为我指明了正确的方向!