根据数字对数组进行排序

时间:2011-04-06 12:02:15

标签: iphone objective-c

我有一个包含2,4,6等值的数组。现在我想对数组进行排序以找到最大值,我不知道该怎么做。 请帮我。 在此先感谢!!

2 个答案:

答案 0 :(得分:2)

NSinteger biggest = [[yourArray objectAtIndex:0] integerValue];
for(int i=1; i<[yourArray count]; i++) {
    NSinteger current = [[yourArray objectAtIndex:i] integerValue];
    if(current >= biggest) {
        biggest = current;
    }
}

这将为您提供阵列中最大的元素。

<强>更新

正如@occculus建议你可以尝试快速枚举。这是参考How do I iterate over an NSArray?

<强> FIX

您的代码错误(由Kalle报告)和效率低下(objectAtIndex:的冗余调用)。修好了,希望你不介意。
Regexident

答案 1 :(得分:2)

您可以通过仅查看每个值一次来确定最高值。

int highest = INT_MIN;

for (id elem in array)
{
    int current = [elem intValue];
    if (highest < current)
        highest = current;
}

如果您希望对数组进行排序:

NSArray *sorted = [unsorted sortedArrayUsingSelector:@selector(compare:)];

int highest = [[sorted lastObject] intValue];