zoukankan      html  css  js  c++  java
  • 算法

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

    一.时间复杂度

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

    常见的时间复杂度

    不常见的时间复杂度

    如何一眼判断时间复杂度

    是以一个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.插入排序

     四.快速查询

    五.堆排序

    六.归并排序

  • 相关阅读:
    Sql的基础知识(一)
    Django--分页功能
    django--基础操作
    CSRF攻击与防御(转载)
    谈谈CSRF
    浅谈Dom遍历
    node50行代码实现壁纸爬取
    node解决request中文乱码问题
    数组去重方法(转载)
    淘宝dns解析错误导致首页打不开
  • 原文地址:https://www.cnblogs.com/RootEvils/p/10422277.html
Copyright © 2011-2022 走看看