• python 冒泡算法


    冒泡排序

    核心思想即是相邻的两个数据进行比较:

    假设数列A有n个数据,首先比较A[0]和A[1],确保较大的数在右边,后面重复同样的动作,

    一直到最大值在最右边,但是这样得到的数据仍然是无序的,只不过是找到了最大值,

    接下来要把最大值排除在外,再重复这个过程。。。。。

    #实现剔除最大值后找最大值的过程
    def pop_sort(lst):
        for i in range(len(lst)-1, 0, -1):
            move_max(lst, i)
    
    '''
    这部分输出的是:
    [7, 1, 4, 2, 3, 6] 5
    [7, 1, 4, 2, 3, 6] 4
    [7, 1, 4, 2, 3, 6] 3
    [7, 1, 4, 2, 3, 6] 2
    [7, 1, 4, 2, 3, 6] 1
    '''
    
    #实现最大值在右边
    def move_max(lst, max_index):
        """
        将索引0到max_index这个范围内的最大值移动到max_index位置上
        :param lst:
        :param max_index:
        :return:
        """
        for i in range(max_index):
            if lst[i] > lst[i+1]:
                lst[i], lst[i+1] = lst[i+1], lst[i]
    
    
    if __name__ == '__main__':
        lst = [7, 1, 4, 2, 3, 6]
        pop_sort(lst)
        print(lst)

    总的来说,就是找到最大值,然后把最大值去掉,再在剩下的找最大值,一直执行这个过程

  • 相关阅读:
    mac升级后,遇到openssl相关问题
    mysql清空所有表
    composer 管理js css等依赖文件【fxp/composer-asset-plugin】
    php安装pcntl
    git命令
    docker
    OAuth 2.0
    mysql杯观锁与乐观锁
    mysql添加用户,授权,刷新权限
    Mac下安装SecureCRT并激活
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13446922.html
Copyright © 2020-2023  润新知