zoukankan      html  css  js  c++  java
  • pyhton 常见基础算法

    冒泡排序:

    def bubble_sort(list):
        for i in range(len(list)-1):
            for j in range(len(list)-i-1):
                if list[j]>list[j+1]:
                    list[j],list[j+1] = list[j+1],list[j]
        return list
     
    if __name__ == '__main__':
        list = [2,3,5,19,3,5,6,7,20]
        print(bubble_sort(list))

    快速排序:

    def QuickSort(myList,start,end):
        #判断low是否小于high,如果为false,直接返回
        if start < end:
            i,j = start,end
            #设置基准数
            base = myList[i]
    
            while i < j:
                #如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
                while (i < j) and (myList[j] >= base):
                    j = j - 1
    
                #如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
                myList[i] = myList[j]
    
                #同样的方式比较前半区
                while (i < j) and (myList[i] <= base):
                    i = i + 1
                myList[j] = myList[i]
            #做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
            myList[i] = base
    
            #递归前后半区
            QuickSort(myList, start, i - 1)
            QuickSort(myList, j + 1, end)
        return myList
    
    
    myList = [49,38,65,97,76,13,27,49]
    print("Quick Sort: ")
    QuickSort(myList,0,len(myList)-1)
    print(myList)

    二分查找:
     def binary_chop(alist, data):
    #     """
    #     递归解决二分查找
    #     :param alist:
    #    :return:
    #    """
         n = len(alist)
         if n < 1:
             return False
         mid = n // 2
         if alist[mid] > data:
             return binary_chop(alist[0:mid], data)
         elif alist[mid] < data:
             return binary_chop(alist[mid+1:], data)
         else:
             return True



  • 相关阅读:
    语言及其文法
    编译原理绪论
    数据库系统绪论
    Flask系列-模板
    进程调度
    Flask系列-程序基本结构
    针对博客园上传md文件有点麻烦的解决方案
    博客样式存档二 (目前样式)
    [省选联考 2020 A 卷] 组合数问题
    退役划水(2)
  • 原文地址:https://www.cnblogs.com/siconglove/p/10031253.html
Copyright © 2011-2022 走看看