冒泡排序
插入排序也是一個簡單的排序算法愉镰,它的思想是,每次只處理一個元素钧汹,從后往前查找丈探,找到該元素合適的插入位置,最好的情況下拔莱,即正序有序(從小到大)碗降,這樣只需要比較n次隘竭,不需要移動。因此時間復(fù)雜度為O(n) 讼渊,最壞的情況下动看,即逆序有序,這樣每一個元素就需要比較n次爪幻,共有n個元素菱皆,因此實際復(fù)雜度為O(n2) 。
int k = 0;
NSMutableArray *array = [NSMutableArray arrayWithArray:@[@1, @3, @2, @9, @6, @19, @7]];
for (int i = 0; i < array.count; i++) {
k++;
for (int j = i; j > 0; j--) {
if (array[j-1] > array[j]) {
int temp = [array[j] intValue];
array[j] = array[j - 1];
array[j - 1] = [NSNumber numberWithInteger:temp];
}
}
NSLog(@"k = %d", k);
NSLog(@"%@\n", array);
}
看打印的日志
2018-05-18 14:02:22.781995+0800 OCProjectKit[55227:7278235] k = 7
2018-05-18 14:02:22.782169+0800 OCProjectKit[55227:7278235] (
1,
2,
3,
6,
7,
9,
19
)