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)
  • 相关阅读:
    lesson4Embedding-fastai
    lesson3 overfitting -fastai
    cell-augmented
    ROI-Align解决方案
    软件安装
    lesson1-fastai
    mask-rcnn
    代码basic讲解
    skearn/pandas
    HDU1087上升子序列的最大和
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8194509.html
Copyright © 2011-2022 走看看