核心思想:两两交换
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];
}
网友评论