zoukankan      html  css  js  c++  java
  • 冒泡排序和生成器

    冒泡排序-第一种方法

    def bubble_sort(num):
    for i in range(len(num) - 1):
    for j in range(len(num) - i - 1):
    if num[j] > num[j + 1]:
    num[j], num[j + 1] = num[j + 1], num[j]
    return num


    lis = [4, 2, 7, 33, 6]
    print(bubble_sort(lis))


    冒泡排序-第二种方法(优化)
    如果冒泡排序中执行一趟而没有交换,则列表已经是有序状态,可以直接结束算法

    import random


    def bubble_sort(num):
    for i in range(len(num) - 1):
    exchange = False # 默认没有交换
    for j in range(len(num) - i - 1): # 比较一趟
    if num[j] > num[j + 1]:
    num[j], num[j + 1] = num[j + 1], num[j]
    exchange = True
    if not exchange: # 不交换了,证明是有序队列
    break


    data = list(range(20))
    random.shuffle(data)
    bubble_sort(data)
    print(data)

    冒泡排序-java代码

    生成器-(两种方法都可以执行生成器)
    方法一:

    def my_generator():
    print('生成器被执行!')
    yield 1 # 运行一次到这个位置,在执行从下面开始
    yield 2


    my = my_generator()
    print(next(my)) # 生成器用next执行
    print(next(my))
    print(next(my)) # 抛出StopIteration异常

    方法二:

    for i in my_generator():  # 循环这个方法也是执行生成器的过程,不会报错
    print(i)
  • 相关阅读:
    重构drf后的环境变量配置
    分离的前后台交互
    虚拟环境的搭建
    Python
    Python
    Python
    Python操作MongoDb数据库
    Python操作SQLite/MySQL/LMDB
    数据库-如何创建SQL Server身份验证用户
    Python
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8194509.html
Copyright © 2011-2022 走看看