文档章节

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

TomatosX
 TomatosX
发布于 2014/09/30 16:17
字数 254
阅读 21
收藏 0
点赞 0
评论 0
//
//  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
粉丝 22
博文 207
码字总数 119547
作品 0
成都
iOS工程师
关于java向下类型转换的问题

在C:Program FilesJavajdk1.7.0srcjavalangString.java文档中有一下代码: public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof St......

沒有主角
2012/08/28
739
2
【objective-c】初次学习objective-c问题汇总... 【暂完,待修改错误】

---------------------------------------------------------------------------------------- 这本书,我已经看过两遍,那两遍都是在买mac pro之前看的,目的是...因为语法怪怪的很有趣。 ...

呢喃的猫咪
2013/06/26
0
2
Blender 源码学习--Operator

Blender 的 c 语言 api 与 python api 颇为相似。[感觉像Python的超级扩展] Mesh Subdivide 下面是对 blender 中的 mesh subdivide operator 代码的分析 Registration 首先我们需要在 wind...

openthings
2015/01/28
0
2
Javascript中DOM技术的的简单学习

第十四课 DOM技术概述 1:DOM概述   文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将HTML文档呈现为带有元素、属性和文本的树结构(节点树)。 DOM是一...

别叫小伙
2016/08/13
0
0
关东升的《从零开始学Swift》3月9日已经上架

大家一直期盼的《从零开始学Swift》于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5 部...

tony关东升
06/26
0
0
关东升的《《从零开始学Swift》即将出版

大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版《从零开始学Swift》《从零开始学Swift》将在《Swift开发指南》第1版的基础上添加Swift2.0的...

智捷课堂
2015/08/17
0
0
python抓取糗事百科

python抓取糗事百科 Run - 学习练习复习2016-01-0793 阅读 python抓取 直接上代码 [...] 点赞 python抓取 作者:Run - 学习练习复习 linux,c,python,php,javascript,系统架构,大数据分享博客...

Run - 学习练习复习
2016/01/07
0
0
【环境配置】DOSBox运行TT打字软件

摘要:tt打字软件是dos年代(大约1995年前)流行的一款DOS环境下打字练习软件,本文解决了在windows环境下用DOSBox模拟DOS环境,运行TT打字软件的过程。 1 引言 大家习惯网络聊天之后,中文打...

暖冰
2016/12/19
47
0
Apple Swift 编程语言入门教程

1 简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOS&OSX开发有所帮助。 Swift是供iOS和OS X应用编程的...

鉴客
2014/06/03
15.7K
30
Apple Swift语言中文教程

Apple Swift编程语言入门教程 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 7 枚举与结构 1 简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The S...

千山万水
2014/06/03
0
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

数据结构与算法2

一个数组的例子,实现查找,显示和删除的功能。 public class array {public static void main(String[] args){long[] arr;arr = new long[100];int nElems = 0;int j;...

沉迷于编程的小菜菜
11分钟前
0
0
Python3 基于 requests 批量下载图片

Python3 基于 requests 批量下载图片 import requestsheaders = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8','Accept-Encod......

leeyi
12分钟前
0
0
Sparkstreaming and Kafka

简介 Kafka 0.10的Spark Streaming集成设计与0.8 Direct Stream方法类似。 它提供了简单的并行性,Kafka分区和Spark分区之间的1:1对应关系,以及对偏移量和元数据的访问。 但是,由于较新的...

刺猬一号
16分钟前
0
0
java获取当前时间所在一周的周一和周日日期

/** * 当前时间所在一周的周一和周日时间 * @param time 当前时间 * @return */ public static Map getWeekDate(String time) { Map map = new HashedMap(); SimpleDateFormat sdf = new Si......

小弱鸡
43分钟前
0
0
Redis数据的导出和导入(dump和load方式)

网上有些文章已经不再适用,本人也是踩了些坑,在此记录下。 迁移redis数据一般有如下3种方式: 第三方工具redis-dump,redis-load aof机制,需要开启aof功能 rdb存储机制 这里介绍第一种方式...

iplusx
48分钟前
1
0
ElasticSearch 高亮显示大文档搜索结果

2016年12月,我们开始研究Ambar——一个文档搜索系统。Ambar使用ElasticSearch作为核心搜索引擎。 在Ambar开发的过程中,我们处理了很多与ES相关的问题,我们想分享我们得到的宝贵经验。让我...

九州暮云
今天
1
0
Python 使用 pywifi 模块 破解wifi密码

git https://github.com/awkman/pywifi 常见常量 from pywifi import const# Define interface status.IFACE_DISCONNECTED = 0IFACE_SCANNING = 1IFACE_INACTIVE = 2IFACE_CONNEC......

阿豪boy
今天
1
0
phpstorm使用Iedis

phpstorm的redis插件Iedis是真好用 看了网上挺多的文章,但是由于我系统还是ubuntu,就有点尴尬了,现在破解之后,留个笔记,即使自己之后有需要也可以很快翻阅 先下载资源 资源下载 zip压缩...

贤郎--均灵
今天
0
0
第三章 spring-bean之FactoryBeanRegistrySupport(4)

前言 从FactoryBeanRegistrySupport类的名字可以看出FactoryBeanRegistrySupport负责FactoryBean的注册与支持。如果想知道FactoryBean相关的资料,请阅读spring-bean中关于FactoryBean的解读...

鸟菜啊
今天
0
0
CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部