核心思想:将前一个元素插入到后面的有序集合中
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];
}
网友评论