OC实现冒泡排序、二分法查找

1、二分法查找

当数据量很大适宜采用该方法。采用二分法查找时,数据需是有序的,否则要先排序。

- (void)binarySearchWithArray:(NSArray *)array searchNum:(NSInteger)searchNum

{

    NSArray *arr = [NSArray arrayWithArray:array];

    NSInteger mid;

    NSInteger min = 0;

    NSInteger max = [arr count] - 1;

    BOOL found = NO;


    while (min<=max) {

        mid = (min + max)/2;

        if (searchNum == [arr[mid] intValue]) {

            NSLog(@"我们发现数量!它是======》%@",arr[mid]);

            found = YES;

            break;

        }

        else if(searchNum < [arr[mid] intValue]) {

            max = mid - 1;

        }

        else if (searchNum > [arr[mid] integerValue]) {

            min = mid + 1;

        }

    }


    if (!found) {

        NSLog(@"这个数字没有找到.");

    }

}


2、冒泡排序

冒泡排序会重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

- (void)bubbleSortWithArray:(NSArray *)array{ NSMutableArray *arr = [NSMutableArray arrayWithArray:array]; for (int i = 0; i<[arr count]; ++i) { for (int j = 0; j<[array count] - i - 1; ++j) { NSInteger left = [arr[j] integerValue]; NSInteger right = [arr[j+1] integerValue]; if (left %@",arr);


}

你可能感兴趣的:(OC实现冒泡排序、二分法查找)