zoukankan      html  css  js  c++  java
  • 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
    
                
                
       
    
  • 相关阅读:
    linux共享库的版本控制
    c++:自己动手实现线程安全的c++单例类
    c++设计成员变量可动态调整的动态类结构
    c++中std::set自定义去重和排序函数
    python网络编程调用recv函数完整接收数据的三种方法
    c++ 以二进制和以文本方式读写文件的区别
    c++和python如何实现主机字节序和网络字节序的相互转换
    线控性能比拼,MKZ与CRV作为自动驾驶开发平台的全面测评
    css 简易 loading 加载图
    Element UI 中被隐藏的滚动条
  • 原文地址:https://www.cnblogs.com/yangte/p/13378981.html
Copyright © 2011-2022 走看看