zoukankan      html  css  js  c++  java
  • 冒泡排序.选择排序,插入排序

    lst = [1,8,2,9,4]

    #冒泡排序

    #关键点:有序区越来越大,所以外层循环是递减的,因为无序区的所以一直是从0开始且越来越小,所以内层循环是range(i)

    def bubble_sort(lst):
    n = len(lst)
    for i in range(n-1,0,-1):
    #flag = 0设置flag作用是内存循环如果没进过if就可以代表当前列表已经后续的外层循环就可以终止了
    flag = 0
    for j in range(i):
    if lst[j] <lst[j+1]:
    lst[j],lst[j+1]=lst[j+1],lst[j]
    flag = 1
    if flag == 0:
    return





    # 选择排序 这个与数据移动有关,只是比较当前有序区的最后一个和当前内存循环的值的大小,如果比有序区的小,那么记录下索引位置,直到内存循环
    # 结束,那么代表当前无序区的位置应该安排在有序区的位置

    def select_sort(lst):
    n = len(lst)
    for i in range(n-1):
    min_index = i
    for j in range(i+1,n-1):
    if lst[j]< lst[min_index]:
    min_index = j
    if min_index!=i:
    print(1)
    lst[min_index],lst[i] = lst[i],lst[min_index]

    select_sort(lst)
    print(lst)



    #插入排序 和有序区的比较,有序区一直在表大,无序区一直在缩小,插入的是有序区
    def insert_sort(lst):
    n = len(lst)
    for i in range(1,n):
    for j in range(i,0,-1):
    if lst[j] < lst[j-1]:
    print(111)
    lst[j],lst[j-1] = lst[j-1],lst[j]

    insert_sort(lst)
    print(lst)



    好的博客:
    https://www.cnblogs.com/fwl8888/p/9315730.html
  • 相关阅读:
    HDU 2460 Network 傻逼Tarjan
    HTTP状态码
    Spring Tool Suite(STS)安装
    Manajro17配置
    VsCode搭建Java开发环境
    《从零开始搭建游戏服务器》项目管理工具Maven
    Debian9安装MariaDB
    Intellij从无到有创建项目
    PostgreSQL 二进制安装
    Intellij IDEA创建项目
  • 原文地址:https://www.cnblogs.com/duoduoyichen/p/11134269.html
Copyright © 2011-2022 走看看