zoukankan      html  css  js  c++  java
  • python之排序算法

    排序是每个语言都需要学会的,不管是c++、java还是python,套路都是类似的

    python中也有自带的排序函数sort,直接使用也可

    闲来无事写了几个排序算法,各不相同

    1、每次遇到最小的数都交换

    list1 = [56,34,87,3,59,10,3543,98]
    
    def sortList(listTest = None):
        length = len(listTest)
        for i in range(length):
            for j in range(i+1,length):
                if listTest[i] > listTest[j]:
                    listTest[i],listTest[j] = listTest[j],listTest[i] #直接交换
        return listTest
    
    ls = sortList(list1)
    print(ls)
    

    这种方法会频繁进行交换操作

    2、一次循环记录最小值的下标,一次循环只交换一次

    list1 = [56,34,87,3,59,10,3543,98]
    
    def sortList(listTest = None):
        length = len(listTest)
        for i in range(length):
            temp = i #记录最小值的下标
            for j in range(i+1,length):
                if listTest[temp] > listTest[j]:
                    temp = j
                    print(temp)
            if temp != i: #如果第一个不是最小的,那么就交换
                listTest[i],listTest[temp] = listTest[temp],listTest[i]
        return listTest
    
    ls = sortList(list1)
    print(ls)
    

    这种就没有频繁交换了,但要每次记录最小值下标

    3、不需要交换,使用新list记录最小值

    list1 = [56,34,87,3,59,10,3543,98]
    
    def sortList(listTest =None):
        length = len(listTest)
        listTemp = []  #记录每次循环最小值
        for i in range(length):
            minTemp = listTest[0]
            for j in range(1,length):
                if minTemp > listTest[j]:
                    minTemp = listTest[j]
            length -= 1
            listTest.remove(minTemp) #删除最小值
            listTemp.append(minTemp) #记录最小值
        return listTemp
    
    
    ls = sortList(list1)
    print(ls)
    
  • 相关阅读:
    《ML模型超参数调节:网格搜索、随机搜索与贝叶斯优化》
    《黎曼几何与流形学习》
    《信息几何优化,随机优化, 与进化策略》
    生产订单加反作废按钮
    生产订单新增按钮没权限
    生产订单备注字段锁定
    审核后提交物料附件
    MRP设置自动执行
    CRM系统数据授权
    复制物料时不复制安全库存
  • 原文地址:https://www.cnblogs.com/watertaro/p/9424824.html
Copyright © 2011-2022 走看看