桶排序

作者: xing_xing | 来源:发表于2019-07-28 17:34 被阅读0次

    空间换时间, 在已知取值范围的情况下为每一个值创建一个对应的标签,最后判断哪个标签被使用就可以了

    //桶排序
    - (void)bucketSortWithArray:(NSMutableArray *)arr {
        // 取最大值
        NSInteger max = [[arr valueForKeyPath:@"@max.intValue"] integerValue];
        // 创建取值范围0~max
        NSMutableArray *dataArr = [NSMutableArray arrayWithCapacity:max];
    
        for (NSInteger i = 0; i < 1001; i ++) {
            dataArr[i] = @"0";
        }
        for (NSInteger i = 0; i < arr.count; i ++) {
            NSInteger temp = [arr[i] intValue];
            dataArr[temp] = @"1";
        }
        for (NSInteger i = 0; i < dataArr.count; i ++) {
            if ([dataArr[i] isEqualToString:@"1"]) {
                NSLog(@"%ld",i);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:桶排序

          本文链接:https://www.haomeiwen.com/subject/wheprctx.html