zoukankan      html  css  js  c++  java
  • Python 算法

    冒泡排序

    def func(alist):
    for x in range(1,len(alist)):
    for i in range(0,len(alist)-x):
    if alist[i] > alist[i+1]:
    alist[i], alist[i+1] = alist[i+1], alist[i]
    return alist
    print(func([1,4,2,3,6,7,8,9,0,5]))

    选择排序

    def func(alist):
    for x in range(0,len(alist)):
    min_num = alist[x]
    for i in range(x+1,len(alist)):
    if alist[i] < min_num:
    alist[i], min_num = min_num, alist[i]
    alist[x] = min_num
    return alist
    print(func([1,4,2,3,6,7,8,9,0,5]))

    斐波那契

    def func(n):
    a = 0
    b = 1
    alist = []
    if n <= 2:
    alist.append(a)
    alist.append(b)
    return alist
    else:
    for i in range(n):
    alist.append(a)
    a, b = b, a + b
    return alist

    print(func(9))

    二分法
    def func(alist, item):
    low = 0
    high = len(alist)-1
    n = 0
    while low <= high:
    mid = int((low + high)/2)
    n += 1
    if alist[mid]==item:
    return mid
    if alist[mid]<item:
    low = mid + 1
    else:
    high = (mid-1)
    return None

    m=[1,2,3,4,8,9,11,12,14,18,19,20,28]
    print(func(m,14))

    链表
    class Node:
    def init(self, initdata):
    self.__data = initdata
    self.__next = None

    def getData(self):
        return self.__data
    
    def getNext(self):
        return self.__next
    
    def setData(self, newdata):
        self.__data = newdata
    
    def setNext(self, newnext):
        self.__next = newnext
    

    class SinCycLinkedlist:
    def init(self):
    self.head = Node(None)
    self.head.setNext(self.head)

    def add(self, item):
        temp = Node(item)
        temp.setNext(self.head.getNext())
        self.head.setNext(temp)
    
    def remove(self, item):
        prev = self.head
        while prev.getNext() != self.head:
            cur = prev.getNext()
            if cur.getData() == item:
                prev.setNext(cur.getNext())
            prev = prev.getNext()
    
    def search(self, item):
        cur = self.head.getNext()
        while cur != self.head:
            if cur.getData() == item:
                return True
            cur = cur.getNext()
    
        return False
    
    def empty(self):
        return self.head.getNext() == self.head
    
    def size(self):
        count = 0
        cur = self.head.getNext()
        while cur != self.head:
            count += 1
            cur = cur.getNext()
    
        return count
    

    if name == 'main':
    s = SinCycLinkedlist()
    print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size()))

    s.add(19)
    s.add(86)
    print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size()))
    
    print('86 is%s in s' % ('' if s.search(86) else ' not',))
    print('4 is%s in s' % ('' if s.search(4) else ' not',))
    print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size()))
    
    s.remove(19)
    print('s.empty() == %s, s.size() == %s' % (s.empty(), s.size()))
  • 相关阅读:
    AJAX异步传输——以php文件传输为例
    js控制json生成菜单——自制菜单(一)
    vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题
    SQL数据库连接到服务器出错——无法连接到XXX
    PHP错误:Namespace declaration statement has to be the very first statement in the script
    【LeetCode】19. Remove Nth Node From End of List
    【LeetCode】14. Longest Common Prefix
    【LeetCode】38. Count and Say
    【LeetCode】242. Valid Anagram
    【LeetCode】387. First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/2193657219qq/p/13894719.html
Copyright © 2011-2022 走看看