按升序排序数组

Gyp*_*psa 4 sorting iphone objective-c nsarray

我有一个包含0,3,2,8等值的数组.我想按递增顺序对数组进行排序.请告诉我如何执行此操作.

提前致谢!!

Reg*_*ent 15

如果您的数组是包含NSNumbers的NSArray:

NSArray *numbers = [NSArray arrayWithObjects:
                    [NSNumber numberWithInt:0],
                    [NSNumber numberWithInt:3],
                    [NSNumber numberWithInt:2],
                    [NSNumber numberWithInt:8],
                    nil];

NSSortDescriptor* sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:YES selector:@selector(localizedCompare:)];
NSArray *sortedNumbers = [numbers sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
Run Code Online (Sandbox Code Playgroud)

但请记住,这只是对NSArray进行排序的一种方法.

仅举几个NSArray的其他方法:


如果你的数组是包含int的ac int数组:

#include <stdio.h>
#include <stdlib.h>
int array[] = { 0, 3, 2, 8 };
int sort(const void *x, const void *y) {
    return (*(int*)x - *(int*)y);
}
void main() {
    qsort(array, 10, sizeof(int), sort);
}
Run Code Online (Sandbox Code Playgroud)


sid*_*yll 7

如果您的数组NSNumber只有s 那么简单,则不需要排序描述符.如果它被调用array,那么

[array sortedArrayUsingSelector:@selector(compare:)];
Run Code Online (Sandbox Code Playgroud)

将根据需要返回按递增顺序排序的新数组.