单列、斐波那契数列、二分查找法、冒泡排序

2019-03-25  本文已影响0人  落幕丶丶

单例

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。

class Singleton(object):
    def __new__(cls,*args,**kwargs):
        if not hasattr(cls, '_instance'):
            orig = super(Singleton,cls)
            cls._instance = orig.__new__(cls, *args, **kwargs)
        return cls._instance         

斐波那契数列

# 方法一:
def func(n):
    a, b = 0, 1
    for x in range(n):
        a, b = b , a+b
    return b
# 方法二:
fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2)

二分查找法

二分查找,给出一个已经排好序的列表,注意是已经排好序的,查找指定元素在列表中的位置

def binary_search(list,item):
    low = 0
    high = len(list)-1
    while low<=high:
        mid = (low+high)//2
        guess = list[mid]
        if guess>item:
            high = mid-1
        elif guess<item:
            low = mid+1
        else:
            return mid
    return None
mylist = [1,3,5,7,9]
print binary_search(mylist,3) # 1

冒泡排序

def bubbleSort(array):
     maxindex = len(array)-1
     maxvalue = array[maxindex]
     while maxindex:
         for i in range(1,maxindex):
            if array[i-1]>array[i]:
                array[i],array[i-1] = array[i-1],array[i]
        maxindex -=1
    return array
array = [3, 0, 1, 832,23,45, 5, 5, 6, 9, 56, 897]
print(bubbleSort(array))
上一篇下一篇

猜你喜欢

热点阅读