iOS算法--冒泡排序
冒泡排序 简介 这是最常规的排序,也是基础到的第一个排序. 特点 两层循环 外层循环是个数的循环 内层循环是选出最大/小的数据 每次外层循环后,找到所需要数据,下次循环的范围就会缩小1 内层循环是移动flag,对比当前数据和下一条数据,满足交换,不满足不做改动,对比后,移动flag. 这种方式类似水下的泡泡,越往上越大,因此,被亲切称为 吗,冒泡排序 时间复杂度 最好:O(n) 最差:O(n2) 平均:O(n2) 代码 + (void)maoPao:(NSMutableArray<NSNumber *> *)array { for (int i = 0; i < array.count - 1; i++) { for (int j = 0; j < (array.count - 1 - i); j++) { if (array[j].integerValue > array[j + 1].integerValue) { [array exchangeObjectAtIndex:j withObjectAtIndex:j + 1]; } } NSLog(@"%@", [array componentsJoinedByString:@","]); } } 优化 缩短冒泡排序,其实可以设置一个flag,用来表明是否发生了数据交换. 在排序过程中, 如果没有发生排序变化,