zoukankan      html  css  js  c++  java
  • Python函数练习:冒泡算法+快速排序(二分法)

    冒泡算法:

    #-*- coding: UTF-8 -*-
    #冒泡排序

    def func(lt):
    if type(lt).__name__ !='list' and type(lt).__name__ !='tuple':
    return
    if type(lt).__name__ == 'tuple':
    return list(lt)
    for i in range(1,len(lt)-1):
         for j in range(1,len(lt)-i):
             if lt[j] > lt[j+1]:
             lt[j],lt[j+1] = lt[j+1],lt[j]
    return lt


    lt_01 = [2,34,5,14,7,28]
    print func(lt_01)

    =================================================

    二分法:(通过函数递归调用实现)

    def func(lt=[]):
        if type(lt).__name__ !='list' and type(lt).__name__!='tuple':
            return
        if type(lt).__name__ =='tuple':
            return list(lt)
        if len(lt)<=1:
            return lt
        k = lt[0]
        lt_l = []
        lt_r = []
        lt_m = []
        for i in lt:
            if i>k:
                lt_r.append(i)
            elif i<k:
                lt_l.append(i)
            else:
                lt_m.append(i)
        lt_l=func(lt_l)
        lt_r=func(lt_r)
        return lt_l + lt_m + lt_r


    a = [2,4,12,6,23,16,28]
    print func(a)

  • 相关阅读:
    JS
    JS
    JS
    VUE
    element-ui 进入页面 message 自动触发的问题
    JS-数组中常用的方法
    CSS-transition简单过渡动画
    vue
    JS
    2021要买的书籍
  • 原文地址:https://www.cnblogs.com/dvbbs2012/p/5039683.html
Copyright © 2011-2022 走看看