算法冒泡排序与封装接构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法冒泡排序与封装接构相关的知识,希望对你有一定的参考价值。
冒泡排序
冒泡排序是相近的两个数字两两比较,然后按照从小到大或者从大到小的顺序排列
比如有两个数字A,B, A = 3 , B = 2,A 比 B 大,则A 和 B 位置发生交换,顺序变成了 B,A,详细过程看输出结果就很清晰了。
升序排序的代码如下:
lst1 = [[1, 9, 8, 5, 6, 7, 4, 3, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9]] lst = lst1[0] lenth = len(lst) #升序 count_swap = 0 for i in range(lenth): flag = False #标记 for j in range(lenth - 1): if lst[j] > lst[j + 1]: lst[j], lst[j + 1] = lst[j + 1], lst[j] flag = True #如果发生交换,标记设为True count_swap += 1 print(lst) if not flag: #not flag表示flag=False,即没有发生交换,表示全部列表已经排序完成,终止循环 break print(lst) #输出排序结果 print(count_swap)
输出结果:
[1, 8, 9, 5, 6, 7, 4, 3, 2] [1, 8, 5, 9, 6, 7, 4, 3, 2] [1, 8, 5, 6, 9, 7, 4, 3, 2] [1, 8, 5, 6, 7, 9, 4, 3, 2] [1, 8, 5, 6, 7, 4, 9, 3, 2] [1, 8, 5, 6, 7, 4, 3, 9, 2] [1, 8, 5, 6, 7, 4, 3, 2, 9] [1, 5, 8, 6, 7, 4, 3, 2, 9] [1, 5, 6, 8, 7, 4, 3, 2, 9] [1, 5, 6, 7, 8, 4, 3, 2, 9] [1, 5, 6, 7, 4, 8, 3, 2, 9] [1, 5, 6, 7, 4, 3, 8, 2, 9] [1, 5, 6, 7, 4, 3, 2, 8, 9] [1, 5, 6, 4, 7, 3, 2, 8, 9] [1, 5, 6, 4, 3, 7, 2, 8, 9] [1, 5, 6, 4, 3, 2, 7, 8, 9] [1, 5, 4, 6, 3, 2, 7, 8, 9] [1, 5, 4, 3, 6, 2, 7, 8, 9] [1, 5, 4, 3, 2, 6, 7, 8, 9] [1, 4, 5, 3, 2, 6, 7, 8, 9] [1, 4, 3, 5, 2, 6, 7, 8, 9] [1, 4, 3, 2, 5, 6, 7, 8, 9] [1, 3, 4, 2, 5, 6, 7, 8, 9] [1, 3, 2, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] 25
降序排序的代码如下:
lst1 = [[1, 9, 8, 5, 6, 7, 4, 3, 2], [1, 2, 3, 4, 5, 6, 7, 8, 9]] lst = lst1[0] lenth = len(lst) #降序 count_swap = 0 #交换次数 for i in range(lenth): flag = False #标记 for j in range(lenth - 1, 0, -1): if lst[j] > lst[j - 1]: lst[j], lst[j - 1] = lst[j - 1], lst[j] flag = True #如果发生交换,标记设为True count_swap += 1 #发生交换,次数+1 print(lst) if not flag: #not flag表示flag=False,即没有发生交换,表示全部列表已经排序完成,终止循环 break print(lst) #输出排序结果 print(count_swap)
#输出结果:
[1, 9, 8, 5, 7, 6, 4, 3, 2] [1, 9, 8, 7, 5, 6, 4, 3, 2] [9, 1, 8, 7, 5, 6, 4, 3, 2] [9, 1, 8, 7, 6, 5, 4, 3, 2] [9, 8, 1, 7, 6, 5, 4, 3, 2] [9, 8, 7, 1, 6, 5, 4, 3, 2] [9, 8, 7, 6, 1, 5, 4, 3, 2] [9, 8, 7, 6, 5, 1, 4, 3, 2] [9, 8, 7, 6, 5, 4, 1, 3, 2] [9, 8, 7, 6, 5, 4, 3, 1, 2] [9, 8, 7, 6, 5, 4, 3, 2, 1] [9, 8, 7, 6, 5, 4, 3, 2, 1] 11
冒泡排序
选择排序
二元选择排序
插入排序
二叉树
以上是关于算法冒泡排序与封装接构的主要内容,如果未能解决你的问题,请参考以下文章