Iphone 如何在目标C中对数组进行排序?
可能的重复项:Iphone 如何在目标C中对数组进行排序?,iphone,Iphone,可能的重复项: 我有一个随机排列的NSMutableArray。我必须按升序和降序对它们进行排序?是否有任何内置的功能,如果没有,如何可以做到这一点。数组如下所示: arr=[“12”、“85”、“65”、“73”、“21”、“87”、“1”、“34”、“32”] 排序包含对象的NSMutableArray(基于键) 首先,您需要创建一个NSSortDescriptor,并告诉它在哪个键上对数组进行排序 NSSortDescriptor *lastNameSorter = [[NSSort
我有一个随机排列的NSMutableArray。我必须按升序和降序对它们进行排序?是否有任何内置的功能,如果没有,如何可以做到这一点。数组如下所示: arr=[“12”、“85”、“65”、“73”、“21”、“87”、“1”、“34”、“32”] 排序包含对象的NSMutableArray(基于键) 首先,您需要创建一个NSSortDescriptor,并告诉它在哪个键上对数组进行排序
NSSortDescriptor *lastNameSorter = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
[personList sortUsingDescriptors:[NSArray arrayWithObject:lastNameSorter]];
希望能帮助您。您案例的示例代码:
NSArray *sortedArray;
sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
NSArray*sortedArray;
SorterDarray=[anArray SorterDarrayUsingFunction:intSort上下文:NULL];
NSInteger intSort(id num1、id num2、void*context)
{
int v1=[num1 intValue];
int v2=[num2 intValue];
如果(v1v2)
退而求其次;
其他的
返回指定名称;
}
您可以开发一个逻辑来在intsort方法中对数组进行排序,并将其作为参数传递给上述方法
有许多预定义的方法,如:
- 排序描述符:
- sortUsingComparator:
- 排序选项:使用比较器:
- sortUsingFunction:上下文:
- sortUsingSelector:
祝您好运TNX使用类NSMutableArray的实例方法 使用此行(但如果是数字,则需要使用NSNumbers而不是字符串) 它按升序对数组进行排序。对于降序,请将此行添加到上一行之后
myArray=[myArray reverseObjectEnumerator] allObjects];
阵列的类型是什么<代码>NSArray?或者它只是一个
C
数组?@Paul R:它是NSMUTABLEARRY请编辑您的问题以包含此澄清逻辑不随语言变化……您可以使用冒泡排序。@iAmitWagh:如果您还不知道,冒泡排序是您可以选择的最差排序算法之一,它的复杂性为O(n^2)!
myArray=[myArray reverseObjectEnumerator] allObjects];