美文网首页
八大排序之插入排序

八大排序之插入排序

作者: Source_Chang | 来源:发表于2020-10-03 09:39 被阅读0次

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

    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

    相关文章

      网友评论

          本文标题:八大排序之插入排序

          本文链接:https://www.haomeiwen.com/subject/kjbbuktx.html