2011-04-06 157 views
0

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

+2

你并不需要数组排序,找到最大的价值! – occulus 2011-04-06 12:05:43

+0

@Jen - 我建议使用快速排序算法。 – 2011-04-06 12:06:32

+1

您需要在您的问题中提供更多信息。什么样的阵列?一个普通的C风格数组? Objective C风格的数组?这是家庭作业btw吗? – occulus 2011-04-06 12:07:19

回答

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; 
    } 
} 

这会给你数组中最大的元素。

UPDATE

由于@occculus建议你可以尝试快速列举。这里是一个参考How do I iterate over an NSArray?

FIX

你的代码是两个都错了(由卡勒报道)和低效(的objectAtIndex:冗余呼叫)。修复它,希望你不介意。
Regexident

+0

使用快速枚举会更好。 – occulus 2011-04-06 12:09:46

+2

您不能在数组中存储整数。它们是NSStrings或NSNumbers。无论哪种情况,您都必须将“intValue”添加到[yourArray ...]调用中。 – Kalle 2011-04-06 12:27:31

+0

@Kalle修复它。有些小鸟告诉我,Jenifer在接受之前甚至没有对它进行测试。 :P – Regexident 2011-04-13 13:31:55

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];