文档章节

Object-C代码练习【二分法查找】

TomatosX
 TomatosX
发布于 2014/09/30 16:17
字数 254
阅读 85
收藏 0

精选30+云产品,助力企业轻松上云!>>>

//
//  main.m
//  BinarySearch
//
//  Created by on 14-9-30.
//  Copyright (c) 2014年 apple. All rights reserved.
//

//二分法查找
#import <Foundation/Foundation.h>
#import "BinarySearch.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithCapacity:10];
        for (int i = 10; i < 50; i++) {
            [mutableArray addObject:[NSNumber numberWithInteger:i]];
        }
        
        BinarySearch *binarySearch = [[BinarySearch alloc] init];
        NSLog(@"%ld", (long)[binarySearch binarySearchIndex:[NSNumber numberWithInteger:33] arrayBySearch:mutableArray]);
    }
    return 0;
}
//
//  BinarySearch.h
//  BinarySearch
//
//  Created by on 14-9-30.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface BinarySearch : NSObject

- (NSInteger) binarySearchIndex: (NSNumber *) key arrayBySearch: (NSMutableArray *) mutableArray;

@end
//
//  BinarySearch.m
//  BinarySearch
//
//  Created by on 14-9-30.
//  Copyright (c) 2014年 apple. All rights reserved.
//

#import "BinarySearch.h"

@implementation BinarySearch

- (NSInteger) binarySearchIndex: (NSNumber *) key arrayBySearch: (NSMutableArray *) mutableArray {
    NSInteger min = 0;
    NSInteger max = (NSInteger)([mutableArray count] - 1);
    
    while (min <= max) {
        NSInteger mid = (min + max) / 2;
        
        if (key > [mutableArray objectAtIndex:mid]) {
            min = mid + 1;
        } else if (key < [mutableArray objectAtIndex:mid]) {
            max = mid - 1;
        } else if (key == [mutableArray objectAtIndex:mid]) {
            return mid;
        }
    }
    return -1;
} // binarySearchIndex

@end


TomatosX
粉丝 23
博文 207
码字总数 119547
作品 0
成都
iOS工程师
私信 提问
加载中
请先登录后再评论。
QTP(4)

一、常见回放错误   1、The "XXX" XXX object was not found in the Object Repository.(在对象库中未找到对象)     ......not found......     方法三:通过Active Screen添加对象......

osc_xv7zq561
2018/03/24
1
0
JAVA--基础前言开发

Day12【Collection集合、ArrayList集合】练习题 基础题 练习一:集合框架 一、请简述集合框架。 答:集合框架主要包括两种:一种是集合,存储对象信息,另一种是Map.存储的是键值。 练习二:C...

李文杰-yaya
2019/11/13
140
0
笨方法学Python—习题41:学习面向对象术语

单词练习(术语学习) 类(class): 告诉Python创建新类型的东西。 对象(object): 两个意思,最基本的东西(变量、语句等等),或者某个东西的实例。 实例(instance): 是让Python创建一个...

youngersteral
06/22
0
0
LY.JAVA面向对象编程.final、多态、抽象类、接口

2018-07-08 13:47:26 final关键字 多态 从右向前念 多态的成员访问特点及转型的理解 1 多态的问题理解: 2 class 孔子爹 { 3 public int age = 40; 4 5 public void teach() { 6 System.out....

osc_tauwfamo
2018/07/08
2
0
QTP(5)

一、检查点   1、位图检查点(Bitmap CheckPoint)     (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置、大小、颜色、状态等     (2)确定位图检查点的要素:     ...

osc_xv7zq561
2018/03/24
1
0

没有更多内容

加载失败,请刷新页面

加载更多

FusionConputer热迁移过程记录

一、迁移原因   云平台集群内存资源不足,已超过设定阈值,内存资源已紧急告警。 二、解决思路   启用新集群,并将老集群中部分虚拟机热迁移至新集群 三、迁移的前提条件   1.被迁移虚...

osc_flwkfqx5
今天
13
0
使用 ServerLess 实现云原生

笔者有幸经历了 IaaS(OS)、CaaS(Container),在这两年又听到了 FaaS(Funtion),这也是运维开发领域里的第三个阶段了吧,今天我将从一个不懂得开发的系统工程师视角以及结合之前的几篇系...

osc_t59f3rc0
今天
18
0
作为软件测试的前辈你能不能给迷茫中的我一点建议?

一、为什么迷茫? 假如前面迷雾一片,作为司机的你,敢踩油门往前冲吗? 大多数人是不敢的。 因为你看不清自己的位置和发展的方向。 同理,一切对未来的恐慌、畏惧、纠结、迷茫,也是因为你看...

osc_auwur47t
今天
12
0
神经机器翻译的直观解释

作者|Renu Khandelwal 编译|VK 来源|Towards Data Science 什么是神经机器翻译? 神经机器翻译是一种将一种语言翻译成另一种语言的技术。一个例子是把英语转换成印地语。让我们想想,如果你在...

osc_u61lmlkv
今天
0
0
用Tableau实现动画数据可视化

作者|PRANAV DAR 编译|VK 来源|Analytics Vidhya 概述 动画可视化是一种艺术,它很容易在Tableau中创造出来 我们将在这里使用开源数据集,并在Tableau中创建自己的动画可视化 介绍 我是动画视...

osc_1oqjcug0
今天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部