zoukankan      html  css  js  c++  java
  • 排序算法比对,插入算法和冒泡算法

    插入算法:

    先贴上代码如下

    #coding:utf-8
    
    """
    插入算法 -- 原列表下每单个数对整个列表的比较并找到最合适位置,只需定义一个变量
    """
    
    a = [3, 2, 4, 1, 5]
    
    
    def inSort(list1):
        if len(list1) == 0:
            return
        # k = 1
        # for i in (1, len(list1)):
        for i in range(1, len(list1)):
            b = list1[i]
            cc = i - 1
            while cc >=0:
                if b < list1[cc]:
                    list1[cc+1] = list1[cc]
                else:
                    break
                cc -= 1
            list1[cc + 1] = b
            print(list1)
    
        print(list1)
    
    inSort(a)
    # sorted(a)
    
            
            

    冒泡算法代码如下

    #coding:utf-8
    
    """
    冒泡算法-- 相邻两数比较, 需要定义三个变量
    """
    
    a = [3, 2, 4, 1, 5]
    
    
    def inSort(list1):
        len1 = len(list1)
        for i in range(len1-1):
            j = i + 1
            # for j in range(0, i+1):
            #     a = list1[i]
            #     b = list1[j]
            #     if list1[i] > list1[j]:
            #         list1[i] = b
            #         list1[j] = a
            # print(j)
            # print(list1[j])
            while j > 0 :
                a = list1[j]
                b = list1[j-1]
                # print(a,b)
                if a < b:
                    list1[j] = b
                    list1[j-1] = a
                else:
                    break
                j -= 1
            # print(list1)
        print(list1)
    
    
                
    
    
    inSort(a)
    # sorted(a)
    
            
            

    示例代码如上,结论:插入算法更快切稳定

    理由:

       1、定义参数个数,冒泡3个,插入1个,当数据量大时,执行代码时参数多的开销越大耗时也越久。

  • 相关阅读:
    JAVA微信公众号网页开发——获取公众号关注的所有用户
    删除mysl
    sql语言(mysql)
    mycat读写分离
    mysql双主双从技术
    实用的10个日志处理案例
    ansible基本操作
    MySQL改密
    mysql源码包安装
    ftp搭建mysql服务器
  • 原文地址:https://www.cnblogs.com/fengzaoye/p/13575991.html
Copyright © 2011-2022 走看看