快速排序-- Quicksort

之前一直搞不懂快速排序,今早在地铁上看到一偏文章讲得很好,自己做一个笔记加深印象,用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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容