码迷,mamicode.com
首页 > 编程语言 > 详细

算法基础

时间:2018-08-05 00:32:01      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:单位   估算   arc   class   计算   span   def   就是   一个   

一 。  什么是算法?

   算法就是用系统的方法描述解决问题的策略机制,简单的来讲就是一个计算的过程,解决问题的方法。

 

二 。 算法的基本概念:

  (1)时间复杂度:  可以理解为用来评估算法运行效率的一个单位

 技术分享图片

        技术分享图片

   (2)常见的时间复杂度(按效率排序)

      技术分享图片

     (3)空间复杂度

           技术分享图片

           技术分享图片

              有时候为了提高效率 会采用空间换取时间的做法

三 .基础的算法

 (1)递归版的二分查找

 

def bin_search_rec(data_set, value, low, high):
       if low <= high:
        mid = (low + high) // 2
        if data_set[mid] == value:
            return mid
        elif data_set[mid] > value:
            return bin_search_rec(data_set, value, low, mid - 1)
        else:
            return bin_search_rec(data_set, value, mid + 1, high)
      else:
         return
            

 

  (2) 冒牌算法优化版

   

def bubble_sort_1(li):
    for i in range(len(li)-1):
        exchange = False
        for j in range(len(li)-i-1):
            if li[j] > li[j+1]:
                li[j], li[j+1] = li[j+1], li[j]
                exchange = True
        if not exchange:
            return

 

    

 

算法基础

标签:单位   估算   arc   class   计算   span   def   就是   一个   

原文地址:https://www.cnblogs.com/xuerh/p/9420580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!