一,直接插入排序简介
直接插入排序是一种较为简单的排序方法,其实现思想是每次将一个未排序的元素插入到已经排好序的元素中去。
二,时间复杂度分析
1,最差时间复杂度O(n^2)
2, 平均时间复杂度O(n^2)
三,实现方法
1,将数组中的第一个元素作为一个已排序数
2,将数组中的第二个数与第一个数比较后插入已排序数中
3,依次将数组剩余的未排序数插入已排序的元素中
四,Objective-C实现
-(void) insertionSort :(NSMutableArray *) array {
if (array.count == 0) {
return;
}
for (int i = 1; i < array.count; i++) {
int j = i;
int target = (int)[array[i] integerValue];
while (j > 0 && target < (int)[array[j-1] integerValue]) {
array[j] = self.array[j-1];
j--;
}
array[j] = [NSNumber numberWithInt:target];
}
}