冒泡排序
插入排序也是一个简单的排序算法,它的思想是,每次只处理一个元素,从后往前查找,找到该元素合适的插入位置,最好的情况下,即正序有序(从小到大),这样只需要比较n次,不需要移动。因此时间复杂度为O(n) ,最坏的情况下,即逆序有序,这样每一个元素就需要比较n次,共有n个元素,因此实际复杂度为O(n²) 。
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
)