Objective-C冒泡排序

NSMutableArray *sourceArray = [NSMutableArray arrayWithObjects:@(3), @(5), @(7), @(9), @(2), @(4), @(8), @(6), nil];

    //冒泡排序

    for (int i = 0; i < sourceArray.count - 1; i++)

    {

        for (int j = 0; j < sourceArray.count - 1 - i; j++)

        {

            NSInteger prevIdx = j;

            NSInteger nextIdx = j + 1;

            

            NSNumber* prevNum = [sourceArray objectAtIndex:prevIdx];

            NSNumber* nextNum = [sourceArray objectAtIndex:nextIdx];

            if (prevNum.intValue > nextNum.intValue)

            {

                [sourceArray exchangeObjectAtIndex:prevIdx withObjectAtIndex:nextIdx];

            }

        }

    }

//验证结果

[sourceArray enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

        NSLog(@"%d:%@", idx, obj);

    }];

posted on 2016-05-11 17:00  piaoliuping  阅读(139)  评论(0)    收藏  举报

导航