• python实现快速排序、冒泡


    快速排序:首先任意选取一个数据(通常选用数组的第一个参数)作为关键数据,然后将比它小的数放在它前面,比它大的数放在后面,这个过程称之为快速排序

    def quick_sort(l):
        if len(l) <= 1:
            return l
        left = []
        right = []
        base=l.pop()
        for x in l:
            if x <base:
                left.append()
            else:
                right.append()
        return quick_sort(left)+[base]+quick_sort(right)

    七行代码实现快速排序

    def quick_sort(l):
        if len(l) <= 1:
            return l
        base = l[0]
        left = [x for x in l[1:] if x < base]
        right = [x for x in l[1:] if x >= base]
        return kuaisu_sort(left) + [base] + kuaisu_sort(right)
    l = [5,8,6,3,55,9]
    print(quick_sort(l))

    冒泡排序:直观的意思就是气泡越大冒的越快

         间接的说就是响铃的两个数字先进行比较,如果两个数字的顺序不对,就进行调换

    
    

    def func(ll):
    num = len(ll) # num = 6
    for i in range(num): # 取出每一个元素

    for j in range(0, num - i - 1):

    if ll[j] > ll[j + 1]:
    ll[j], ll[j + 1] = ll[j + 1], ll[j]


    ll = [5, 45, 65, 95, 3, 521]

    func(ll)
    print(ll)
     

    6行代码实现冒泡排序

    def bubble_sort(l):
        # 外层循环
        for i in range(len(l)-1):
            # 内层比较循环,j为索引
            for j in range(len(l)-i -1):
                if l[j]>l[j+1]:
                    l[j],l[j+1]=l[j+1],l[j]
        return l
     

    二分查找:将n个元素分层大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2]则找到x,算法中止,如果x<a[n/2],则只要在数组a的左半部分继续搜索x,,如果x>a[n/2],则只要在数组a的右半部搜索x.

    代码如下:

    def find(l,aim,start = 0,end = None):
        end = len(l) if end is None else end
        mid_index = (end - start)//2 + start
        if start <= end:
            if l[mid_index] < aim:
                return find(l,aim,start =mid_index+1,end=end)
            elif l[mid_index] > aim:
                return find(l, aim, start=start, end=mid_index-1)
            else:
                return mid_index
        else:
            return '找不到这个值'
    
    
    ret= find(l,44)
    print(ret)

    :二分查找算法 必须处理有序的列表

  • 相关阅读:
    洛谷 P2029 跳舞
    洛谷 P1122 最大子树和
    洛谷 P2015 二叉苹果树
    洛谷 P1651 塔
    洛谷 P1759 通天之潜水
    洛谷 P2763 试题库问题
    洛谷 P2364 胖男孩
    <转>jmeter(十四)HTTP请求之content-type
    <转>jmeter(十三)常见问题及解决方法
    <转>jmeter(十二)关联之正则表达式提取器
  • 原文地址:https://www.cnblogs.com/xiaolu915/p/10528656.html
Copyright © 2020-2023  润新知