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);


}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文出处:http://www.cnblogs.com/maybe2030/p/4715035.html引文出处:...
    明教de教主阅读 13,008评论 0 7
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,087评论 0 15
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,592评论 0 52
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 5,030评论 0 2
  • 我是房檐上的一颗梧桐树 尚仙琴 不经意间,看到房檐上的一颗梧桐树,惊异于它是怎样吸...
    尚仙琴阅读 3,582评论 0 1