本文共 1805 字,大约阅读时间需要 6 分钟。
??????????????????????????????????Objective-C???????????????????
????????????????????????????????????????
??????????????????????????(d + 1)/2????????????????
???????
?????????????????????????????????????-1?
#import@interface BinarySearch : NSObject- (NSInteger)binarySearch:(NSArray *)array withTarget:(id)target;@end@implementation BinarySearch- (NSInteger)binarySearch:(NSArray *)array withTarget:(id)target { if (array == nil || [array count] == 0) { return -1; } NSInteger left = 0; NSInteger right = [array count] - 1; NSInteger middle; while (left <= right) { middle = (left + right) / 2; if ([array middleEquals:target]) { return middle; } else if ([array[middle] < target]) { left = middle + 1; } else { right = middle - 1; } } return -1;}@end
int main(int argc, const char *argv) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // ???????? NSArray *numbers = @[ @1, @2, @3, @4, @5, @6, @7, @8, @9, @10 ]; // ?????? NSInteger result = [[BinarySearch alloc] binarySearch:numbers withTarget:@5]; // ???? printf("?????\n"); if (result != -1) { printf("??? %ld ??????? %ld\n", 5, result); } else { printf("??? %ld ?????\n", 5); } return 0;} NSObject??BinarySearch????????????binarySearch:withTarget:??????????????????????????-1????????????????????????????????????Objective-C?????
转载地址:http://odnfk.baihongyu.com/