• 7.1range函数和冒泡排序


    range函数和冒泡排序

    一、range函数

    • 在Python开发应用中 range函数相当重要,也比较常用

      首先看range函数的原型: range(start, end, scan)

      参数解析:

      ​ start: 计数从start开始。默认是从0开始。例如range(5)等价于range(0, 5);

      ​ end: 计数到end结束,但不包括end.例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5(俗称:包前不包后)

      ​ scan:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

      例:
      for i in range(5):    
           print(i,end=' ')      #输出 [0, 1 ,2 ,3 ,4]         #其中加end=''不换行输出
      
      for i in range(0,5):
           print(i,end=' ')      #输出 [0 ,1 ,2, 3 ,4]
       
      for i in range(-5):
           print(i,end=' ')      #输出 []
              
      for i in range(0, 5, 2):
           print(i, end=' ')     #输出 [0 ,2 ,4]
       
      for i in range(0, -5, -2):
           print(i, end=' ')     #输出 [0 ,-2 ,-4]
      
      
      
    • 关于range函数的小任务

      利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。
      
      
      例:
      c=list(range(1,31))        #将1-30的数字一次添加到一个列表中
      x='*'                      #定义一个值为*的变量
      for i in c:                #变量i在列表c中遍历
              if i%3==0:         #判断i向3取余的余数是否为0
                 c[i-1]=x        #余数为0则将此索引的元素改为*
              print(c)
              
      结果:
      [1, 2, '*', 4, 5, '*', 7, 8, '*', 10, 11, '*', 13, 14, '*', 16, 17, '*', 19, 20, '*', 22, 23, '*', 25, 26, '*', 28, 29, '*']
      

    二、冒泡排序

    1.简介

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法

    它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

    这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

    2.算法原理

    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    3.range函数进行冒泡排序

    a=[1,2,5,3,6,8,4]                            #定义列表a
    for i in range(0,len(a),1):                  #range确定索引范围,变量i在这个范围内遍历
        print(i)
        for j in range(i+1,len(a),1):            #range确定索引范围,变量j在这个范围内遍历
            if a[j] < a[i]:                      #将前后遍历的值进行比较
                a[j],a[i]=a[i],a[j]              #若后者小于前者,则将俩数值调换位置
                print(a)
    
    输出结果:
    0
    1
    2
    [1, 2, 3, 5, 6, 8, 4]
    3
    [1, 2, 3, 4, 6, 8, 5]
    4
    [1, 2, 3, 4, 5, 8, 6]
    5
    [1, 2, 3, 4, 5, 6, 8]
    6
    
                
                
       
    
  • 相关阅读:
    软件工程第四次作业-题目2
    oracle数据库本地网络服务名配置常见问题
    2020软件工程第三次作业
    2020软件工程第二次作业
    2020软件工程第一次作业
    20145208 蔡野 《网络攻防》 后门原理与实践
    20145208蔡野 《网络对抗》逆向及BOF基础实践
    密码分析学学习总结
    20145208 《信息安全系统设计基础》课程总结
    20145208 《信息安全系统设计基础》第十四周学习总结
  • 原文地址:https://www.cnblogs.com/yangte/p/13378981.html
Copyright © 2020-2023  润新知