快速排序-- Quicksort

之前一直搞不懂快速排序,今早在地铁上看到一偏文章讲得很好,自己做一个笔记加深印象,用OC实现了一下

快速排序

- (NSArray *)quickSourct:(NSMutableArray *)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;
}

你可能感兴趣的:(快速排序-- Quicksort)