Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import "AppDelegate.h"
- #import "binarySearch.h"
- @interface AppDelegate ()
- @end
- @implementation AppDelegate
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
- binarySearch *objSearch = [[binarySearch alloc] init];
- NSArray *array = [NSArray arrayWithObjects: @1, @2, @3, @4, @5, @6, @7, @8, nil];
- [objSearch initWithArray:array];
- [objSearch searchFor: 6];
- @end
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- @interface binarySearch : NSObject
- //properties
- @property (strong, nonatomic) NSArray *list;
- @property (assign, nonatomic) NSInteger middle;
- //functions
- -(instancetype) initWithArray: (NSArray*) array;
- -(NSInteger) searchFor: (NSInteger) number;
- @end
- NS_ASSUME_NONNULL_END
- #import "binarySearch.h"
- @implementation binarySearch
- -(instancetype) initWithArray:(NSArray *)array {
- NSArray *sortedArray = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
- return [obj1 integerValue] > [obj2 integerValue];
- }];
- if (![array isEqualToArray:sortedArray]) {
- NSLog(@"okeys");
- return nil;
- }
- if (self = [super init]) {
- self.list = array;
- self.middle = array.count / 2;
- }
- NSLog(@"initArray!");
- return self;
- }
- -(NSInteger) searchFor:(NSInteger)number {
- NSInteger middle = self.list.count / 2;
- NSInteger middleValue = [self.list[middle] integerValue];
- NSArray *subarray = self.list;
- do {
- if (number == middleValue) {
- NSLog(@"%d", [self.list indexOfObject:subarray[middle]]);
- return [self.list indexOfObject:subarray[middle]];
- }
- if (middle == 0) {
- NSLog(@"not found!");
- return NSNotFound;
- }
- if (number > middleValue) {
- subarray = [subarray subarrayWithRange:NSMakeRange(middle + 1, subarray.count % 2 == 0 ? middle - 1 : middle)];
- } else {
- subarray = [subarray subarrayWithRange:NSMakeRange(0, middle)];
- }
- middle = subarray.count / 2;
- middleValue = [subarray[middle] integerValue];
- } while (YES);
- return NSNotFound;
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement