zoukankan      html  css  js  c++  java
  • Python 冒泡排序 快速查找 以及 二分查找

    #冒泡排序
    def buddle_sort(under_sort_list):
    l = under_sort_list
    for j in range(len(l)):
    for i in range(len(l)-j-1):
    if l[i] > l[i+1]:
    l[i], l[i+1] = l[i+1], l[i]
    return l

    # 快速排序
    def quick_sort(l):
    if len(l) < 2:
    return l # 如果列表只有一个元素, 返回列表(用于结束迭代)
    else:
    pivot = l[0] # 取列表第一个元素为基准数
    low = [i for i in l[1:] if i < pivot] # 遍历l, 将小于基准数pivot的全放入low这个列表
    high = [i for i in l[1:] if i >= pivot ]
    return quick_sort(low) + [pivot] + quick_sort(high) # 对左右两部分分别进行迭代

    # 二分查找
    # 返回 x 在 arr 中的索引,如果不存在返回 -1
    # arr:列表 l:初始的列表索引 r:列表长度 x:要查找的字符
    def binarySearch(arr, l, r, x):
    # 基本判断
    if r >= l:
    mid = int(l + (r - l) / 2)
    # 元素整好的中间位置
    if arr[mid] == x:
    return mid
    # 元素小于中间位置的元素,只需要再比较左边的元素
    elif arr[mid] > x:
    return binarySearch(arr, l, mid - 1, x)
    # 元素大于中间位置的元素,只需要再比较右边的元素
    else:
    return binarySearch(arr, mid + 1, r, x)
    else:
    # 不存在
    return -1


    if __name__=='__main__':
    # print(quick_sort([5,2,3,1]))
    ll=buddle_sort([5,2,3,1,7])
    print (ll)
    # [1, 2, 3, 5, 7]
    print(binarySearch(ll, 0, len(ll)-1,7))

    学习资料:https://www.runoob.com/python3/python-binary-search.html
    学习资料:https://www.cnblogs.com/superhin/p/12737646.html
  • 相关阅读:
    hiveserver2 with kerberos authentication
    python Basic usage
    python Quicksort demo
    Python HeapSort
    mrunit for wordcount demo
    CCDH证书
    Hadoop question list
    Hadoop Yarn core concepts
    Hadoop Resource
    Hadoop could not find or load main class
  • 原文地址:https://www.cnblogs.com/xxzz123/p/13031256.html
Copyright © 2011-2022 走看看