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)
  • 相关阅读:
    数组
    习题
    JAVA 实战练习
    JAVA语言基础——类型转换
    JAVA 语言基础——运算符
    JAVA语法基础——数据类型
    09.22函数,三局两胜
    09.22 猜拳一次
    09.21,函数,累加求和
    09.21,枚举
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8194509.html
Copyright © 2011-2022 走看看