回顾基础算法,会有不同的收获

Posted 啊~小 l i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回顾基础算法,会有不同的收获相关的知识,希望对你有一定的参考价值。

冒泡排序

from random import randint


def maopao(lst):
    flag = False
    for i in range(len(lst)):
        if i+1<len(lst) and lst[i]>lst[i+1]:
            lst[i],lst[i+1] = lst[i+1],lst[i]
            flag = True
    return flag,lst
    


if __name__ == '__main__':
    l = [randint(1,101) for i in range(10)]
    flag = True
    while flag:
        flag, l = maopao(l)
        if not flag:
            break
        else:
            flag, l = maopao(l)
    print(l)

选择排序

from random import randint


def xuanze(lst):
    tep = 0
    for i in range(len(lst)):
        m = tep
        for i in range(tep,len(lst)):
            if lst[tep] > lst[i] and lst[m]>lst[i]:
                m = i
        lst[m],lst[tep] = lst[tep],lst[m]
        tep = tep+1
    return lst


if __name__ == '__main__':
    l = [randint(1,101) for i in range(10)]
    print(xuanze(l))

二分法查找

from random import randint


def erfenfa(lst,a):
    start = 0
    lens = len(lst)-1
    while start <= lens:
        if a < lst[(start+lens)//2]:  # 11  12
            lens = (start+lens)//2-1
        elif a > lst[(start+lens)//2]:
            start = (start+lens)//2+1
        elif a == lst[(start+lens)//2]:
            print(lst[(start+lens)//2])
            break
    else:
        print("没有找到!")
        
        
if __name__ == "__main__":
    lst = [randint(1,101) for i in range(20)]
    lst = list(set(lst))
    lst.sort()
    erfenfa(lst,lst[len(lst)-1])

以上是关于回顾基础算法,会有不同的收获的主要内容,如果未能解决你的问题,请参考以下文章

算法怎么学?每天早起刷题,坚持一定会有收获

javase基础回顾LinkedList需要注意的知识点 阅读源码收获

C++ 基础知识回顾总结

小日记,今天的收获

换组博客

JavaScript从入门到放弃JS基础-01