美文网首页
深度搜索( 数子排序)

深度搜索( 数子排序)

作者: xing_xing | 来源:发表于2019-08-04 15:02 被阅读0次

计算纸牌在全部使用且不重复使用的情况下,有几种排序方式

// 纸牌数组(三张纸牌,未使用标记为0, 可以根据数组中的位置,理解为1,2,3)
self.cardArr = [@[@"0",@"0",@"0"] mutableCopy];
// 盒子数组 (最开始是空盒子)
self.boxArr = [@[@"",@"",@""] mutableCopy];

- (void)depthSearchWithNumber:(NSInteger)current {
    // 当前盒子大于纸牌数的时候结束(数组索引从0开始,索引等同于个数的时候就是超出了)
    if (current == self.cardArr.count) {
        // 遍历输入当前盒子中的纸牌数
        for (NSInteger i = 0; i < self.count; i ++) {
            // 输出这组数子(由于从0开始的, 加1等同于从1开始)
            NSLog(@"%d",[self.boxArr[i] intValue] + 1);
        }
        return;
    }
    // 遍历所有纸牌
    for (NSInteger i = 0; i < self.cardArr.count;  i++) {
        // 判断当前纸牌是否使用过
        if ([self.cardArr[i] isEqualToString:@"0"]) {
            // 把未使用的纸牌放进当前盒子中
            self.boxArr[current] = [NSString stringWithFormat:@"%ld",i];
            // 把放进盒子中的纸牌标记为已使用过
            self.cardArr[i] = @"1";
            // 进行下一个盒子的操作
            [self depthSearchWithNumber:current + 1];
            // 把刚刚使用过
            self.cardArr[i] = @"0";
        }
    }
}

相关文章

  • 深度搜索( 数子排序)

    计算纸牌在全部使用且不重复使用的情况下,有几种排序方式

  • 算法-图算法总结

    1 图的搜索 1.1 广度搜索 1.2 深度搜索 2 拓扑排序 3 并查集

  • 2018-09-26

    算法 二分查找 运行结果 选择排序 运行结果 快速排序 运行结果 广度优先搜索 运行结果 深度优先搜索 运行结果 ...

  • 算法汇总

    关于算法: 基础技巧:分治、二分、贪心排序算法:快速排序、归并排序、计数排序搜索算法:回溯、递归、深度优先遍历,广...

  • 算法与数据结构简介

    0x01 算法 基础技巧:分治、二分、贪心 排序算法:快速排序、归并排序、计数排序 搜索算法:回溯、递归、深度优先...

  • 算法

    算法应用BFS广度优先搜索DFS深度优先搜索回溯法(DFS+剪枝)部分和问题分治法快速排序、归并排序动态规划背包问...

  • 第十四节-排序优化

    优化快速排序 三数取中法,九数取中法 随机法 限制递归深度 自己实现函数调用栈,手动模拟入栈出栈 举例分析排序函数...

  • 北航算法复习笔记

    #算法复习笔记 一 决策和策略 二 回溯法使用深度优先(dfs)搜索状态空间树 三 快速排序 标准(常用)快速排序...

  • 279. 完全平方数

    思路:才用广度优先搜索每次把 减去平方数的差值 和 搜索深度 入队遍历,第一次找到差值0时,对应的搜索深度即所求。...

  • 搜索的坑--搜索和筛选器(上)

    踩的坑: 1.添加搜索功能 只考虑了模糊词匹配,未考虑分词。 搜索结果排序,跟技术妥协默认为按权重排序:套餐购买数...

网友评论

      本文标题:深度搜索( 数子排序)

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