• 算法题汇总


    数据结构算法视频:https://www.bilibili.com/video/BV17J411i7zS?p=45

    1、冒泡排序

     1 def bubble_sort(li):
     2     n = len(li)
     3     # 遍历列表长度减1次
     4     for i in range(1, n):
     5         # 创建一个变量,用来记录本轮冒泡,是否有数据交换位置
     6         status = False
     7         # 每次遍历都获取第一个元素,依次和后面的元素进行比较
     8         for j in range(n - i):
     9             # 判断前元素,和后一个元素的值
    10             if li[j] > li[j + 1]:
    11                 # 交换当前元素和后一个元素的值
    12                 li[j], li[j + 1] = li[j + 1], li[j]
    13                 # 只要由数据交换位置,则修改statusd的值
    14                 status = True
    15         # 每一轮冒泡结束之后,判断当前status是否为Flase,
    16         # 如果为Flase,则说明上一轮冒泡没有修改任何数据的顺序(即数据是有序的)
    17         if not status:
    18             return li
    19     return li
    View Code

    时间复杂度:O(n²) 

    2、斐波那契

    ①输出第十个

    1 def fib(n):
    2     a, b = 1, 1
    3     for i in range(n-2):
    4         a, b = b, a+b
    5     return b
    6 
    7 # 输出了第10个斐波那契数列
    8 print(fib(10))
    View Code

    ②输出前十个

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 # 斐波那契数列
     4 
     5 def fib(n):
     6     if n == 1:
     7         return [1]
     8     if n == 2:
     9         return [1, 1]
    10     fibs = [1, 1]
    11     for i in range(n-2):
    12         fibs.append(fibs[-1] + fibs[-2])
    13     return fibs
    14 
    15 # 输出前10个斐波那契数列
    16 print(fib(10))
    View Code

    3. 快速排序

    https://www.bilibili.com/video/BV17J411i7zS?p=45

    4. 二分法排序

     1 def func(alist, item):
     2     n = len(alist)
     3     first = 0
     4     last = n - 1
     5     while first <= last:
     6         mid = (first + last) // 2
     7         if alist[mid] == item:
     8             return True
     9         elif item < alist[mid]:
    10             last = mid - 1
    11         else:
    12             first = mid + 1
    13     return False
    View Code
  • 相关阅读:
    微信小程序 checkbox 组件
    微信小程序 button 组件
    h5视频标签 video
    h5离线缓存
    ECharts插件介绍(图表库)
    rich-text 副文本组件 text文本组件
    progress组件(进度条)
    icon组件
    movable-view组件
    android 双击图片变大,缩放功能
  • 原文地址:https://www.cnblogs.com/erchun/p/14916378.html
Copyright © 2020-2023  润新知