zoukankan      html  css  js  c++  java
  • 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)

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

  • 相关阅读:
    《统计学习方法》
    《赤裸裸的统计学》
    a[i]=i++
    正态分布(normal distribution)
    可视化
    数据转换
    beLazy
    水到渠成
    数据过滤
    数据合并
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13446922.html
Copyright © 2011-2022 走看看