object-c 快速排序
时间: 2023-02-25 15:03:03 浏览: 94
C语言-快速排序
Objective-C 中的快速排序算法可以使用递归方法来实现。
代码实现示例:
```
-(NSArray *)quickSortArray:(NSArray *)array {
if (array.count <= 1) {
return array;
}
NSInteger pivotIndex = array.count / 2;
NSNumber *pivot = array[pivotIndex];
NSMutableArray *less = [NSMutableArray array];
NSMutableArray *greater = [NSMutableArray array];
for (NSInteger i = 0; i < array.count; i++) {
if (i != pivotIndex) {
NSNumber *number = array[i];
if (number.integerValue < pivot.integerValue) {
[less addObject:number];
} else {
[greater addObject:number];
}
}
}
return [[self quickSortArray:less] arrayByAddingObjectsFromArray:@[pivot]];
return [[self quickSortArray:less] arrayByAddingObjectsFromArray:@[pivot] arrayByAddingObjectsFromArray:[self quickSortArray:greater]];
}
```
在上面的代码中,pivotIndex 变量存储了当前数组的中间位置。然后,使用一个 for 循环把数组中的元素分成两部分:比 pivot 小的元素和比 pivot 大的元素。最后,将这两部分的数组分别递归调用 quickSortArray: 方法进行排序,最后将排序完成的数组合并返回。
阅读全文