• 算法梳理


    冒泡

    def bubble_sort(data_list):
        '''
        冒泡排序:
        首先拿到第一个元素,和第二个作比较,把较大的数放在右边
        第二个再和第三个比较。。。。一轮下来,最后一个就是最大的数
        再一轮,倒数第二个也变成有序的......最终都变成有序的
        '''
        for i in range(len(data_list)):
            flag=True
            for j in range(len(data_list)-i-1):
                if data_list[j]>data_list[j+1]:
                    data_list[j],data_list[j+1]=data_list[j+1],data_list[j]
                    flag=False
            if flag==True:
                break
        return data_list

    插入

    def select_sort(data_list):
        '''
        选择排序:
        不断找到最小的(找最大的也是可以的)
        首先拿到第一个,然后发现比它小的,记住下标。循环一轮,找到最小的数的位置 和 最左边的数交换位置
        然后从第二个开始....和第二个交换位置,
       .....开始变得越来越有序
        :param data_list:
        :return:
        '''
        for i in range(len(data_list)):
            flag=True
            min_loc=i#假定最小数的下标为i
            for j in range(i+1,len(data_list)):
                #如果当前数比假定的小,将该元素标记为最小
                if data_list[min_loc]>data_list[j]:
                    min_loc=j
                    flag=False
            if flag:
                break
            #遍历结束时,将最小元素和第一个元素交换
            data_list[i],data_list[min_loc]=data_list[min_loc],data_list[i]
        return data_list

    选择

    def insert_sort(data_list):
        '''
        插入排序:有点像抓牌,插牌
       手中刚开始有一张牌,一张牌当然是有序的
       再把第二张牌拿到手里 和 第一张比较是否需要交换位置,然后手中的两张牌变得有序了
       再拿第三张牌,和手中的牌 从右边开始比较 ,如有需要交换位置
       ......
       所有的牌都到手里,手里的牌都变成有序的
        :param data_list:
        :return:
        '''
        for i in range(1,len(data_list)):
            for j in range(0,i):
                if data_list[i]<data_list[j]:
                    data_list[i],data_list[j]=data_list[j],data_list[i]
        return data_list
  • 相关阅读:
    网络连接 长连接 短链接
    提升系统的QPS和吞吐量
    QPS/TPS/并发量/系统吞吐量的概念
    spring与mybatis四种整合方法
    理解HTTP之keep-alive
    MyBatis 3 使用注解配置SQL映射器
    Dubbo -- Simple Monitor
    Dubbo后台管理和监控中心部署
    Socket通讯-Netty框架实现Java通讯
    Netty 能做什么
  • 原文地址:https://www.cnblogs.com/ray-mmss/p/9376656.html
Copyright © 2020-2023  润新知