常用算法

时间:2019-08-11
本文章向大家介绍常用算法,主要包括常用算法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

快排

def quicksort(lis):
    if len(lis) < 2:
        return lis
    else:
        numb = lis[0]
        left_list = [i for i in lis[1:] if i <= numb]
        right_list = [i for i in lis[1:] if i > numb]
        final_list = quicksort(left_list) + [numb] + quicksort(right_list)
        return final_list

quick_list = quicksort([6,3,5,87,69,52,4,16])
print(quick_list)

  

二分法查找

lis = [3, 4, 5, 6, 16, 52, 69, 87, 95]
def search(lis,item):
    left = 0
    right = len(lis)-1

    while right-left >= 0:
        middle = (right+left) // 2
        if item > lis[middle]:
            left = middle + 1

        elif item < lis[middle]:
            right = middle -1

        else :
            return middle

  

选择排序

def choice_sort(lis):
    min = 0
    min_value = lis[0]

    for i in range(1,len(lis)):
        if min_value >= lis[i]:
            min = i
            min_value = lis[i]
    return min

def app_list(list):
    new_list = []
    for i in range(len(list)):
        new_list.append(list.pop(choice_sort(list)))
    return new_list

print(app_list([6,3,5,87,69,52,4,16]))

  

冒泡排序

def maopao(lis):
    n = len(lis) - 1
    while n :
        i = 0

        while i < n:
            if lis[i] > lis[i+1]:
                lis[i],lis[i+1] = lis[i+1],lis[i]
            i += 1

        n -= 1

    return lis

print(maopao([6,3,5,87,69,52,4,16]))

  

原文地址:https://www.cnblogs.com/gyc-tzx/p/11335068.html