算法

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

一.时间复杂度

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

常见的时间复杂度

不常见的时间复杂度

如何一眼判断时间复杂度

 

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

 四.快速查询

五.堆排序

六.归并排序

posted @ 2019-02-23 12:36  RootEvils  阅读(197)  评论(0编辑  收藏  举报