Sorting Array in increasing order

前端 未结 7 425
鱼传尺愫
鱼传尺愫 2021-01-03 07:01

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!!

相关标签:
7条回答
  • 2021-01-03 07:06

    You can sort the array in simple method using sortUsingSelector the code as follows.

    [array sortUsingSelector:@selector(compare:options:)];
    NSLog(@"array after sort in max:%@",array);
    

    i think its the simplest way without using any descriptors.

    0 讨论(0)
  • 2021-01-03 07:12

    You don't need a sort descriptor if your array is that simple with NSNumbers only. If it's called array, then

    [array sortedArrayUsingSelector:@selector(compare:)];
    

    will return a new array sorted in increasing order, as you want.

    0 讨论(0)
  • 2021-01-03 07:17

    Use the code: [[myData allKeys]sortedArrayUsingSelector:@selector(psuedoNumericCompare:)];

    myData is your array. If you use that line in your code, it will sort on size of the integer (and not alphabetic, so it won't sort like 1, 111, 2,322, 333, 4445, 45, 67 but like 1, 2, 45, 67, 111, 322, 333, 4445).

    Original source: How to let the sortedArrayUsingSelector using integer to sort instead of String?

    0 讨论(0)
  • 2021-01-03 07:20

    Sorting has many solutions, each with different efficiencies.

    The easiest and most natural sort, in my opinion, is insertion sort. Go to this page and scroll down to look at the code. Insertion sort

    For a more complete list of all of the sorting algorithms, check this page

    0 讨论(0)
  • 2021-01-03 07:21
    NSSortDescriptor *sortDescriptor;
    sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:nil
                                                  ascending:YES] autorelease];
    NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    NSArray *sortedArray;
    sortedArray = [**YourArray** sortedArrayUsingDescriptors:sortDescriptors];
    
    0 讨论(0)
  • 2021-01-03 07:26

    Try this .If you have Array intArr like {1,10.11,12,2,23}

    NSArray *array = [intArr copy];
        NSArray *sortedArray = [array sortedArrayUsingComparator: ^(id obj1, id obj2) {
    
            if ([obj1 integerValue] == 0 && [obj2 integerValue] == 0)
            {
                return (NSComparisonResult)NSOrderedSame;
            }
            if ([obj1 integerValue] == 0)
            {
                return (NSComparisonResult)NSOrderedDescending;
            }
            if ([obj2 integerValue] == 0)
            {
                return (NSComparisonResult)NSOrderedAscending;
            }
    
            if ([obj1 integerValue] > [obj2 integerValue])
            {
                return (NSComparisonResult)NSOrderedDescending;
            }
    
            if ([obj1 integerValue] < [obj2 integerValue])
            {
                return (NSComparisonResult)NSOrderedAscending;
            }
            return (NSComparisonResult)NSOrderedSame;
        }];
    
    0 讨论(0)
提交回复
热议问题