zoukankan      html  css  js  c++  java
  • 使用块代码实现数组排序和乱序

     1 #import "HMViewController.h"
     2 
     3 @interface HMViewController ()
     4 
     5 @end
     6 
     7 @implementation HMViewController
     8 
     9 - (void)viewDidLoad
    10 {
    11     [super viewDidLoad];
    12     
    13     // 块代码
    14     NSArray *array = @[@(1), @(2), @(3), @(4), @(5)];
    15     
    16     // 排序
    17     array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) {
    18 
    19         // 乱序=>一会升序,一会降序
    20         // 随机
    21 //        arc4random_uniform(10) => 0~9之间的随机数
    22         int seed = arc4random_uniform(2);
    23         if (seed) {
    24             return [num1 compare:num2];
    25         } else {
    26             return [num2 compare:num1];
    27         }
    28     }];
    29     
    30     NSLog(@"%@", array);
    31 }
    32 
    33 - (void)sortWith:(NSArray *)array
    34 {
    35     // 排序
    36     array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) {
    37         
    38         /**
    39          1 4 5 2
    40          4 1 5 2
    41          4 1 5 2
    42          5 4 1 2
    43          5 4 1 2
    44          5 4 2 1
    45          */
    46         NSLog(@"%@ %@", num1, num2);
    47         
    48         // 升序
    49         //        return [num1 compare:num2];
    50         // 降序
    51         return [num2 compare:num1];
    52     }];
    53     
    54     NSLog(@"%@", array);
    55 }
    56 
    57 - (void)arrayWith:(NSArray *)array
    58 {
    59     int i = 0;
    60     for (NSNumber *num in array) {
    61         NSLog(@"%@", num);
    62         
    63         if (i == 1) {
    64             break;
    65         }
    66         i++;
    67     }
    68     
    69     // 参数:对象,索引,是否中断
    70     // 数组的块方法遍历的效率比for in高
    71     [array enumerateObjectsUsingBlock:^(NSNumber *obj, NSUInteger idx, BOOL *stop) {
    72         NSLog(@"%@", obj);
    73         
    74         // idx == 1 退出循环
    75         if (idx == 1) {
    76             *stop = YES;
    77         }
    78     }];
    79 }
    80 
    81 @end
  • 相关阅读:
    机器学习之大数据集
    机器学习之协同过滤算法(推荐系统)
    机器学习之异常检测
    机器学习之PCA主成分分析
    机器学习之K-means算法
    机器学习之SVM支持向量机
    机器学习之模型选择与改进
    springmvc spring mybatis插入mysql中文乱码
    springmvc和http404错误
    oracle删除users表空间
  • 原文地址:https://www.cnblogs.com/liqiantu/p/4391295.html
Copyright © 2011-2022 走看看