- (void)logInsertionSortingArray {
NSMutableArray * arr = @[@(16),@(1),@(2),@(9),@(7),@(12),@(5),@(3),@(8),@(13),@(10)].mutableCopy;
for (int i = 1; i < arr.count; i++) {
int j = i; /* j是一个坑, 确定坑的位置,再把数从坑里取出来,注意顺序*/
id temp = arr[i]; /* temp 是从坑里取数*/
if ([arr[i] intValue]< [arr[i-1] intValue]) { /* j > 0 防止越界。写&&前面效率更高*/
while (j > 0 && [temp intValue] < [arr[j-1] intValue]) {
arr[j] = arr[j-1];
j--;
}
arr[j] = temp;
}
}
NSLog(@"arr = %@",arr);
}
时间复杂度O(n^2) 空间复杂度O(1)
参考:https://mp.weixin.qq.com/s/McqFXkXucSZldjU46t5cdw
https://www.jianshu.com/p/d50eac247452