算法

算法(冒泡,选择,插入)

#冒泡排序    时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(len(li)-1):#i是趟数
        for j in range(len(li)-i-1):#j是指针
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))

#选择排序         时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(len(li)-1):
        min_loc = i
        for j in range(i+1,len(li)):
            if li[j] < li[min_loc]:
                min_loc = j
        if min_loc != i:
            li[i],li[min_loc] = li[min_loc],li[i]
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))

#插入排序          时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(1,len(li)):#i 代表拿到牌的下标
            tmp = li[i]
            j = i-1           #j是手里最后一张牌的下标
            while True:
                if j < 0 or tmp >= li[j]:
                    break
                li[j+1] = li[j]
                j-=1
            li[j+1] = tmp
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))
#冒泡排序    时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(len(li)-1):#i是趟数
        for j in range(len(li)-i-1):#j是指针
            if li[j] > li[j+1]:
                li[j],li[j+1] = li[j+1],li[j]
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))

#选择排序         时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(len(li)-1):
        min_loc = i
        for j in range(i+1,len(li)):
            if li[j] < li[min_loc]:
                min_loc = j
        if min_loc != i:
            li[i],li[min_loc] = li[min_loc],li[i]
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))

#插入排序          时间复杂度是o(n²)   空间复杂度是o(1)
import random as rd
def a_sort(li):
    for i in range(1,len(li)):#i 代表拿到牌的下标
            tmp = li[i]
            j = i-1           #j是手里最后一张牌的下标
            while True:
                if j < 0 or tmp >= li[j]:
                    break
                li[j+1] = li[j]
                j-=1
            li[j+1] = tmp
    return li
li = list(range(100))
rd.shuffle(li)
print(li)
print(a_sort(li))
原文地址:https://www.cnblogs.com/george92/p/10020398.html