快速排序时间复杂度O(n×log(n))
使用递归和对比
- (NSMutableArray *)fastSort:(NSMutableArray *)rr{
if (rr.count<2) {
return rr;
}else{
NSInteger pivot = [rr[0] integerValue];
NSMutableArray *less = [NSMutableArray arrayWithCapacity:2];
NSMutableArray *greater = [NSMutableArray arrayWithCapacity:2];
NSMutableArray *middle = [NSMutableArray arrayWithCapacity:2];
NSMutableArray *temp = [NSMutableArray arrayWithCapacity:3];
for (NSNumber *i in rr) {
if ([i integerValue]<pivot) {
[less addObject:i];
}else if ([i integerValue] ==pivot){
[middle addObject:i];
}else{
[greater addObject:i];
}
}
[temp addObjectsFromArray:[self fastSort:less]];
[temp addObjectsFromArray:middle];
[temp addObjectsFromArray:[self fastSort:greater]];
return temp;
}
}