sorted函数的实现

  

复制代码
import random
hip=list(range(10))
random.shuffle(hip)
print(hip)
def hum(b,reverse=False):
    hop=[]
    for x in b:
        for i,y in enumerate(hop):
            flag= x>y if reverse else x<y
            if flag:
                hop.insert(i,x)
                break
        else:
            hop.append(x)
    return hop
print(hum(hip,True))
复制代码

 

复制代码
import random
hip=list(range(10))
random.shuffle(hip)
print(hip)

def hum(iterable,reverse=False):
    hum=[]
    def comp(a,b):
        return a>b if reverse else a<b
    for x in iterable:
        for index,y in enumerate(hum):
            if comp(x,y):
                hum.insert(index,x)
                break
        else:
            hum.append(x)
    return hum
print(hum(hip,1))
复制代码

 

将比较函数做成通用函数,外移

复制代码
import random
hip=list(range(10))
random.shuffle(hip)
print(hip)

def comp(a,b,reverse):
    return a>b if reverse else a<b

def hum(iterable,reverse=False):
    hop=[]
    for x in iterable:
        for index,y in enumerate(hop):
            if comp(x,y,reverse):
                hop.insert(index,x)
                break
        else:
            hop.append(x)
    return hop
print(hum(hip,1))
复制代码

 

复制代码
hip=list(range(10))
random.shuffle(hip)
print(hip)

def comp(a,b):
    return a<b

def hum(iterable,key=comp,reverse=False):
    hip=[]
    for x in iterable:
        for index,y in enumerate(hip):
            flag= key(x,y) if not reverse else key(y,x)
            if flag:
                hip.insert(index,x)
                break
        else:
            hip.append(x)
    return hip
print(hum(hip,reverse=True))
复制代码

 

posted @   ascertain  阅读(251)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示