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
  • 相关阅读:
    js对象
    实习经历日志02
    前端实习经历日志01
    js变量提升
    WebApls-元素(offset, client, scroll)
    WebApls-Bom
    WebApls-DOM的核心总结
    WebApls-节点01
    javascript-
    Javascript-字符串对象
  • 原文地址:https://www.cnblogs.com/xxzz123/p/13031256.html
Copyright © 2011-2022 走看看