zoukankan      html  css  js  c++  java
  • 排列树

    还是拿背包问题来分析吧,假设有N个背包,现在我们要对这个N个背包排列。。输出所有情况

    那么有:

             背包                   1                   2                   3                   ...                   n         
                   (n个背包选一个!)      (n-1个背包选一个!)      (n-2个背包选一个!)       ...     (只剩下一个背包啦!凑合用着吧!)

    生动点形容整个场景,存在N个人
      第一步,在这N个人中找一个人轮流坐在第一个位置上
      第二步,在这N-1个人中找一个人轮流坐在第一个位置上 第一个位置已经固定人了
      第三步,在这N-2个人中找一个人轮流坐在第一个位置上 第一/二个位置已经固定人了
      第四步,在这N-3个人中找一个人轮流坐在第一个位置上 第一/二/三个位置已经固定人了

          。。。。

    #!/usr/bin/env python
    # coding=utf-8
    
    # 排列树
    def perm(arr, k):
        arrLen = len(arr)
        if arrLen  == k:
            print arr
            return
    
        # [0, k) 区间都是确定好的元素,不能再搞他们的位置了。。。。
        for index in range(k, arrLen):
    
            # 第k层考虑下用arr数组的index 号元素?
            temp = arr[index]
            arr[index] = arr[k]
            arr[k] = temp
    
            perm(arr, k + 1)
    
            # 第k层考虑下不再用arr数组的index 号元素了
            temp = arr[index]
            arr[index] = arr[k]
            arr[k] = temp
    
    arr = [1, 2, 3]
    num = 0
    perm(arr, num)
    
  • 相关阅读:
    Select2插件的隐藏、设置宽度
    远程登陆Linux服务器
    ECMAScript typeof用法
    Select2异步搜索数据
    ECMAScript 引用类型
    LeetCode 任务调度器-Python3<八>
    sort、sorted高级排序-Python3.7 And 算法<七>
    LeetCode算法笔记目录
    数据结构-Python3.7<三>
    【夯实PHP基础】php开发时遇到白页的调试方法
  • 原文地址:https://www.cnblogs.com/ccXgc/p/8992228.html
Copyright © 2011-2022 走看看