使用块代码实现数组排序和乱序
2015-04-04 00:08
585 查看
#import "HMViewController.h" @interface HMViewController () @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; // 块代码 NSArray *array = @[@(1), @(2), @(3), @(4), @(5)]; // 排序 array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) { // 乱序=>一会升序,一会降序 // 随机 // arc4random_uniform(10) => 0~9之间的随机数 int seed = arc4random_uniform(2); if (seed) { return [num1 compare:num2]; } else { return [num2 compare:num1]; } }]; NSLog(@"%@", array); } - (void)sortWith:(NSArray *)array { // 排序 array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) { /** 1 4 5 2 4 1 5 2 4 1 5 2 5 4 1 2 5 4 1 2 5 4 2 1 */ NSLog(@"%@ %@", num1, num2); // 升序 // return [num1 compare:num2]; // 降序 return [num2 compare:num1]; }]; NSLog(@"%@", array); } - (void)arrayWith:(NSArray *)array { int i = 0; for (NSNumber *num in array) { NSLog(@"%@", num); if (i == 1) { break; } i++; } // 参数:对象,索引,是否中断 // 数组的块方法遍历的效率比for in高 [array enumerateObjectsUsingBlock:^(NSNumber *obj, NSUInteger idx, BOOL *stop) { NSLog(@"%@", obj); // idx == 1 退出循环 if (idx == 1) { *stop = YES; } }]; } @end
相关文章推荐
- JavaScript中数组的排序、乱序和搜索实现代码
- Java使用选择排序法对数组排序实现代码
- JavaScript中数组的排序、乱序和搜索实现代码
- asp下实现 重新排序数字数组的代码
- 使用ADO实现数组排序
- js对数组中的数字从小到大排序实现代码
- 用冒泡的方式对数组进行排序, 并写出对应的优化后的代码实现。(重点写思路、原理)
- 使用数组实现栈的旧项遗忘策略代码实现
- PHP 简单数组排序实现代码
- JavaScript中实现数组的排序、乱序和搜索
- 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序。
- php比较多维数组中值的大小排序实现代码
- google校招笔试题 2.2 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的swap,请设计并实现排序。
- JavaScript中实现数组的排序、乱序和搜索
- ASP 使用Filter函数来检索数组的实现代码
- PHP排序之二维数组的按照字母排序实现代码
- 实现只有0,1,2三种元素的乱序数组的排序
- PHP 简单数组排序实现代码
- C# 数组查找与排序实现代码
- 代码实现PHP数组排序