zoukankan      html  css  js  c++  java
  • 全排列算法实现

    def ascii_permutation(arr:list):
        length = len(arr)
    
        while(True):
            print(arr)
    
            for i in range(length-1,-1, -1):
                if arr[i-1] < arr[i]:
                    x = i-1
                    break
    
            if i == 0:
                return
    
            for j in range(length-1, x, -1):
                if arr[j] > arr[x]:
                    y = j
                    break
    
    
            arr[x], arr[y] = arr[y], arr[x]
            sub = arr[x+1:]
            sub.reverse()
            arr = arr[0:x+1] + sub
    
    def recursive_permutation(arr:list, start:int, end:int):
        if start == end:
            print(arr)
    
        else:
            for i in range(start, end):
                arr[i], arr[start] = arr[start], arr[i]
                recursive_permutation(arr, start+1, end)
                arr[i], arr[start] = arr[start], arr[i]
    
    #arr = [1,2,3,4]
    
    #ascii_permutation(arr)
    #print('****************')
    #recursive_permutation(arr,0,len(arr))
    

      

  • 相关阅读:
    servlet
    过滤器
    拦截器
    logback
    hibernate(1)
    函数的关键字参数
    函数的不定长参数
    打印星形三角
    九九乘法表
    udp客户端收发数据流程
  • 原文地址:https://www.cnblogs.com/panchong/p/11038308.html
Copyright © 2011-2022 走看看