八大排序之冒泡排序

2020-09-29  本文已影响0人  SourceZhang

核心思想:两两交换

C++:

void BubbleSort::sort(std::vector<int>& arrNumbers) {
    
    for ( int i = arrNumbers.size() - 1; i >= 0; --i ) {
        
        for ( int j = 0; j < i; ++j ) {
            
            if ( arrNumbers[j] > arrNumbers[j + 1] ) {
                
                std::swap(arrNumbers[j], arrNumbers[j + 1] );
            }
        }
    }
}

Objective-C:

+ (nonnull NSArray<NSNumber *> *)bubbleSort:(nonnull NSArray<NSNumber *> *)arrNumbers {
    
    NSMutableArray<NSNumber *> *arrMNumbers = [arrNumbers mutableCopy];
    for ( NSInteger endIndex = arrNumbers.count - 1; endIndex >= 0; --endIndex ) {
        
        for ( NSInteger startIndex = 0; startIndex < endIndex; ++startIndex ) {
            
            if ( arrMNumbers[startIndex].integerValue > arrMNumbers[startIndex + 1].integerValue ) {
                
                // swap
                NSNumber *temp = arrMNumbers[startIndex];
                arrMNumbers[startIndex] = arrMNumbers[startIndex + 1];
                arrMNumbers[startIndex + 1] = temp;
            }
        }
    }
    
    return [arrMNumbers copy];
}

DEMO

上一篇 下一篇

猜你喜欢

热点阅读