插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法。插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序。
插入排序代码:
- (void)viewDidLoad {
[super viewDidLoad];
NSMutableArray *array = [NSMutableArray arrayWithObjects:@"5",@"3",@"6",@"2",@"1",@"8",@"9",@"4",@"7",nil];
[self insertSortWithMutableArray:array];
NSLog(@"插入排序后: %@",array);
}
- (void)insertSortWithMutableArray:(NSMutableArray *)array{
for (int i = 1; i < array.count; i++) {
int temp = [array[i] intValue];
for (int j = i-1; j>=0 && temp <[array[j] intValue]; j--) {
array[j+1] = array[j];
array[j] = [NSNumber numberWithInt:temp];
}
}
}
结果打印: