zoukankan      html  css  js  c++  java
  • 冒泡排序--python

     1 import random
     2 
     3 
     4 # 原始冒泡排序
     5 def bubble_sort(nums):
     6     counter = 0
     7     for i in range(len(nums) - 1): # 这个循环负责设置冒泡排序的趟数
     8         for j in range(len(nums) - i - 1): # 这个是每趟比较的次数,每次从0开始,底部是已有序
     9             if nums[j] > nums[j+1]:
    10                 nums[j], nums[j+1] = nums[j+1], nums[j]
    11                 counter += 1
    12     print('比较次数:', counter)
    13     return nums
    14 
    15 
    16 # 优化冒泡排序
    17 def bubble_sort2(nums):
    18     counter = 0
    19     for i in range(len(nums) - 1):
    20         ex_flag = False # 设置交换标志,如果没有进行交换,说明已排序完成,无需再进行
    21         for j in range(len(nums) - 1):
    22             if nums[j] > nums[j+1]:
    23                 nums[j], nums[j+1] = nums[j+1], nums[j]
    24                 counter += 1
    25                 ex_flag = True
    26         if not ex_flag:
    27             break
    28     print('比较次数', counter)
    29     return nums
    30 
    31 def test_arr(count, limit):
    32     arr = []
    33     for i in range(count):
    34         arr.append(random.randint(1, limit))
    35     return arr
    36 
    37 
    38 if __name__ == '__main__':
    39     arr = test_arr(100, 100)
    40     arr2 = test_arr(100, 100)
    41     print('冒泡排序前', arr)
    42     arr = bubble_sort(arr)
    43     print('冒泡排序后', arr)
    44     print('--------------------')
    45     print('冒泡排序前', arr2)
    46     arr2 = bubble_sort(arr2)
    47     print('冒泡排序后', arr2)
  • 相关阅读:
    mvn 创建的项目 导入到eclipse
    maven GroupID和ArtifactID
    eclipse配置maven + 创建maven项目
    微服务简介
    spring-boot5代码
    spring-boot5
    TextView及其子类
    RTMP协议
    实现输出h264直播流的rtmp服务器
    Android按键事件传递流程(二)
  • 原文地址:https://www.cnblogs.com/yixiu868/p/11730535.html
Copyright © 2011-2022 走看看