• 算法


    算法就是输入后的成按照你的规定去执行

    一.时间复杂度

    估计计算运算之间的一个式子,一般来说时间复杂度较高的算法比复杂度低的慢

    常见的时间复杂度

    不常见的时间复杂度

    如何一眼判断时间复杂度

    是以一个O(1)作为最基础的单位分别有O(n平方)

     二.空间复杂度

      用来评估算法内存占用大小的一个式子

    三.递归

      递归的特点

        1.调用自身

        2.结束条件

    四.查找算法

      1.列表查找

         in

         index  

      2.二分查找 (限制就是只能是有序列表)

        hight >low   有值  

        hight =low    就一个值

        hight <low    没有值

      3.递归 二分查找

    五.排序

      1.冒泡排序 

    第一种
    def bubble_sort(alist):
    for j in range(len(alist)-1,0,-1): # j表示每次遍历需要比较的次数,是逐渐减小的 for i in range(j): if alist[i] > alist[i+1]: alist[i], alist[i+1] = alist[i+1], alist[i] li = [54,26,93,17,77,31,44,55,20] bubble_sort(li) print(li)

       2.选择排序

    lt = [3, 5, 2, 1, 8, 4]
    #求出lt的长度
    n = len(lt)
    #外层循环确定比较的轮数,x是下标,lt[x]在外层循环中代表lt中所有元素
    for x in range(n-1):
       #内层循环开始比较
       for y in range(x+1,n):
          #lt[x]在for y 循环中是代表特定的元素,lt [y]代表任意一个lt任意一个元素。
          if lt[x]>lt[y]:
             #让lt[x]和lt列表中每一个元素比较,找出小的
             lt[x],lt[y]=lt[y],lt[x]
    print(lt)

    选择排序法和冒泡排序法的区别:

    • (1)冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
    • (2)冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
    • (3)冒泡排序是通过数去找位置,选择排序是给定位置去找数;
    •   (4)   冒泡排序相对稳定

       3.插入排序

     四.快速查询

    五.堆排序

    六.归并排序

  • 相关阅读:
    Erlang 杂记 IV
    ASP.NET MVC的View是如何被呈现出来的?[设计篇]
    面向对象—在线文件管理模块
    软件开发中个人在团队里的效绩评定
    用go语言遍历文件夹
    磁盘缓存的算法:写算法
    一种Lua到C的封装
    从信息系统界面设计引发的思考
    基于Backbone.js的JavaScript MVC示例程序
    C和C++
  • 原文地址:https://www.cnblogs.com/RootEvils/p/10422277.html
Copyright © 2020-2023  润新知