zoukankan      html  css  js  c++  java
  • 计数排序(使用Pyython描述)

    此算法描述

      

    此算法特性

    此算法适用场景




    代码

    def CountingSort(arr):
    
        max_value = max(arr) # 列表中的最大值
        min_value = min(arr) # 列表中的最小值
    
        template_arr =[0]*len(arr) # 储存元素个数信息
        res_arr = [0]*len(arr) # result_list
    
    
        for value in arr: # 计算列表中每个元素出现的次数
            template_arr[value-min_value] = template_arr[value-min_value] + 1
    
        for now_local in range(1,len(arr)): # 计算此元素之前的个数(包括此元素: 90 90 91. 那么91就是出现了三次).
            template_arr[now_local] = template_arr[now_local] +  template_arr[now_local-1]
    
        print(template_arr)
    
        for i in range(len(arr)-1,-1,-1): 
            # 倒序进行对比.这么做的原因是: [90 91 91 92]. 那么第二个91是第三名.
    
            res_arr[ template_arr[ arr[i]- min_value ]-1 ] = arr[i]
    
            '''
            arr[i]- min_value   : 此元素在list中处于第几名.
    
            template_arr[ arr[i]- min_value ] : 此元素前面有多少个元素
    
            res_arr[ template_arr[ arr[i]- min_value ]-1 ] : 减一是因为 前面有的元素个数也包括此元素本身
                
            '''
            template_arr[arr[i]-min_value]-=1
    
        return res_arr
    
    
    print(CountingSort([7,5,4,4]))
    




    参考

  • 相关阅读:
    windows下命令行
    利用border画三角形
    正则
    flex布局
    css笔记
    W3C标准
    SEO相关
    左边固定,右边自适应(解决方案)
    容错性测试的测试点
    Charles安装及使用教程
  • 原文地址:https://www.cnblogs.com/gtscool/p/12522927.html
Copyright © 2011-2022 走看看