几个python小程序

来源:互联网 发布:南通java培训班 编辑:程序博客网 时间:2024/05/18 19:19

第一个列表展开:

def muli(lst):    for item1 in lst:        if isinstance(item1,list):            for y in muli(item1):                yield y        else:            yield item1            a = [1,2,[3,4],[5,[6,[7,[8,[9,10]]]]]]print list(muli(a))

二分法:
def binarySearch(l, t):    low, high = 0, len(l) - 1    while low < high:        #print low, high        mid = (low + high) / 2        if l[mid] > t:            high = mid        elif l[mid] < t:            low = mid + 1        else:            return mid    return low if l[low] == t else False if __name__ == '__main__':    l = [1, 4, 12, 45, 66, 99, 120, 444]    print binarySearch(l, 1)
快排:

def qsort(lst):    if lst==[]:        return []    else:        mid = lst[0]        little = qsort([x for x in lst[1:] if x < mid])        bigger = qsort([x for x in lst[1:] if x >= mid])        return little+[mid]+bigger if __name__=='__main__':    lst=[5,6,78,9,0,-1,2,3,-65,12]    print(qsort(lst))

插排:

if __name__ == '__main__':     l = [4,1,9,13,34,26,10,7,4]def insert_sort(l):    for i in range(len(l)):        min_index = i        for j in range(i+1,len(l)):             if l[min_index] > l[j]:                min_index = j        l[i],l[min_index] = l[min_index],l[i]        print(str(l))    print("result: " + str(l))insert_sort(l)print("insert_sort success!!!")


0 0
原创粉丝点击