• 排序法


    二分法

    # 递归
    lst = [2, 3, 5, 10, 15, 16, 18, 22, 26, 30, 32, 35, 41, 42,
           43, 55, 56, 66, 67, 69, 72, 76, 82, 83, 88]
    
    
    def func(num, left, right):
        if left <= right:
            mid = (right + left) // 2
            if lst[mid] > num:
                right = mid - 1
                return func(num, left, right)
            if lst[mid] < num:
                left = mid + 1
                return func(num, left, right)
            if lst[mid] == num:
                print("找到此数字")
                return mid
        else:
            print("列表中没有此数字")
            return -1
    
    func(69, 0, len(lst)-1)
    
    # 循环
    left = 0
    right = len(lst) - 1
    num = int(input("请输入查找的数字:"))
    while left <= right:
        mid = (left + right)//2
        if lst[mid] < num:
            left = left + 1
        if lst[mid] > num:
            right = right -1
        if lst[mid] == num:
            print("找到此数字")
            break
    else:
        print("列表中没有次数字")
    二分法

    冒泡排序法

    lst = [666, 555, 444, 333, 2, 1]
    n = 0  # 用于比较是否完成(len(lst)-1)!此交换
    m = 1  # 用于每轮比较都比上上轮少一次
    sum = 0  # 比较循环的总数
    l = 1  # 计算循环的总数
    k = 0  # k 与 k+1 位置的比较交换
    while l < len(lst):  # sum为需要交换的最多次数=(len(lst)-1)!
        sum = sum + l
        l += 1
    
    while n < sum:
        while k < len(lst) - m:
            # 第一轮需要比较len(lst)-1次,下一轮需要比较len(lst)-2次.以此类推
            if lst[k] > lst[k + 1]:
                lst[k], lst[k + 1] = lst[k + 1], lst[k]
                k += 1             # 大于交换 k+1
            else:
                k += 1  # 小于或等于不变 k+1
            n += 1      # 循环次数加1
        m += 1          # 下一轮的比较次数减一次  len(lst) - m
        k = 0           # k置零从头开始比较冒泡
    print(lst)
    冒泡

     快排

    def quicksort(list):
        if len(list) < 2:
            return list
        else:
            mid_num = list[0]
            large_num = [i for i in list[1:] if i > mid_num]
            sm_num = [i for i in list[1:] if i <= mid_num]
            result = quicksort(sm_num) + [mid_num] + quicksort(large_num)
            return result

     Python数据类型操作的时间复杂度

    list

     

    dict

    set

  • 相关阅读:
    谷歌翻译插件
    WordPress资料收集,以后整理
    WordPress不同分类使用不同的文章模板
    禁用/移除WordPress页面的评论功能
    wordpress设置一个特定的页面作为首页
    wordpress主题之后台菜单编辑,小工具
    tinkcmf视频上传大小限制
    转:解决Onethink上传视频的问题 超棒的解决方案
    linux(centos) 下安装phpstudy 如何命令行进入mysql
    在 Mac OS X 10.9 搭建 Python3 科学计算环境
  • 原文地址:https://www.cnblogs.com/jiaqi-666/p/9483385.html
Copyright © 2020-2023  润新知