Search code examples
iphoneobjective-csortingnsarray

Sorting Array in increasing order


I have an array that contains values like 0,3,2,8 etc.I want to sort my array in increasing order.Please tell me how to do this.

Thanks in advance!!


Solution

  • If your array is an NSArray containing NSNumbers:

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

    Keep in mind though, that this is just one way to sort an NSArray.

    Just to name a few other methods of NSArray:


    If your array is a c int array containing ints:

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