之前一直搞不懂快速排序,今早在地铁上看到一偏文章讲得很好,自己做一个笔记加深印象,用OC实现了一下
快速排序
- (NSArray *)quickSourct:(NSMutableArray<NSNumber * > *)unSourcArray
startIndex:(int)startIndex
endIndex:(int)endIndex {
int middle = (startIndex + endIndex) / 2;
int middleValue = [unSourcArray[middle] intValue];
int i = startIndex;
int j = endIndex;
while (i <= j) {
while ([unSourcArray[i] integerValue] < middleValue) {
i ++;
}
while ([unSourcArray[middle] integerValue] < middleValue) {
j --;
}
NSLog(@"%@", unSourcArray);
i ++;
j --;
}
if (startIndex < j) {
[self quickSourct:unSourcArray startIndex:startIndex endIndex:j];
}
if (i < endIndex) {
[self quickSourct:unSourcArray startIndex:i endIndex:endIndex];
}
return unSourcArray;
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。