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)

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

  • 相关阅读:
    OO第一单元总结
    [软件工程]提问回顾与个人总结
    结对项目-最长单词链总结
    [软件工程]第一次阅读作业
    [软件工程] 第0次作业
    提问回顾与个人总结
    结对作业博客
    软工第1次个人作业
    软工第0次个人作业
    OO第四次总结
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13446922.html
Copyright © 2011-2022 走看看