八大排序之插入排序

2020-10-03  本文已影响0人  Source_Chang

核心思想:将前一个元素插入到后面的有序集合中

C++:

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

Objective-C:

+ (nonnull NSArray<NSNumber *> *)insertSort:(nonnull NSArray<NSNumber *> *)arrNumbers {
    
    NSMutableArray<NSNumber *> *arrMNumbers = [arrNumbers mutableCopy];
    for ( NSInteger i = arrMNumbers.count - 2; i >= 0; --i ) {
        
        for ( NSInteger j = i; j < arrMNumbers.count - 1; ++j ) {
            
            if ( arrMNumbers[j].integerValue > arrMNumbers[j + 1].integerValue ) {
                
                NSNumber *temp = arrMNumbers[j];
                arrMNumbers[j] = arrMNumbers[j + 1];
                arrMNumbers[j + 1] = temp;
            }
        }
    }
    
    return [arrMNumbers copy];
}

DEMO

上一篇 下一篇

猜你喜欢

热点阅读