lowB 三人组

Posted Aray007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lowB 三人组相关的知识,希望对你有一定的参考价值。

lowB 三人组

1.冒泡排序

2.选择排序

3.插入排序

 

1.冒泡排序

#冒泡排序法:竖看,一一比较,把大的放在最顶。 每两个相邻的数,如果前边的比后边大就交换这两个数。
\'\'\'
分析:
    1.本来为无序区,没进行一趟冒泡,就有一位进入有序区,无序区就-1
        2.正常来说:一个列表需要走N趟冒泡,但是,最后一位数其实是不需要走了,就是 N-13.i 表示趟数,j 表示 箭头
    2.时间复杂度:O(N2)
\'\'\'
import random

def bubble_sort(x):
    for i in range(len(x)-1):
        change = False
        for j in range(len(x)-i-1):
       if x[j] > x[j+1]: x[j],x[j+1] = x[j+1],x[j] change =True if not change: break li = list(range(10)) random.shuffle(li) print(li) bubble_sort(li) print(li)

结果:

 

 

2.选择排序

# 选择排序法: 横看,把最小的放在最左边
\'\'\'
关键点:
    无序区
    
    最小数额位置
\'\'\'
import random

def select_sort(x):
    for i in range(len(x)-1):
        min_loc = i
        for j in range(i+1,len(x)):
            if x[j] < x[min_loc]:
                min_loc = j
        if min_loc !=i:
            x[i],x[min_loc] = x[min_loc],x[i]

li = list(range(10))
random.shuffle(li)
print(li)
select_sort(li)
print(li)

结果:

 

3.插入排序

# 插入排序法: 先一个有序区数字,把无序区的数依次插入到有序区,直到无序区没有为止
\'\'\'
关键点: 
    摸到的牌
    手里的牌

\'\'\'
import random
def insert_sort(x):
    for i in range(1,len(x)):
        tmp = x[i]
        j = i-1
        while j >=0  and tmp < x[j]:
            x[j+1] = x[j]
            j = j-1
        x[j+1] = tmp

li = list(range(10))
random.shuffle(li)
print(li)
insert_sort(li)
print(li)

结果:

 

以上是关于lowB 三人组的主要内容,如果未能解决你的问题,请参考以下文章

算法-lowb三人组

算法1-排序LowB三人组

排序算法lowb三人组-选择排序

排序算法lowb三人组-插入排序

算法之LOWB三人组之选择排序

算法 排序lowB三人组 冒泡排序 选择排序 插入排序