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

7.1range函数和冒泡排序的更多相关文章

  1. Python函数的冒泡排序、递归以及装饰器

    函数的冒泡排序: 本质是,让元素换位置,逐个比较最终排序. 例1:实现a1,a2值互换: a1 = 123 a2 = 456 temp = a1 a1 = a2 a2 = temp print(a1) ...

  2. php总结4——数组的定义及函数、冒泡排序

    4.1 数组的定义 数组:变量存储的有序序列. 索引数组:下标为数字的数组.  $数组名称(下标)    下标从0开始的数字. 直接定义: $arr[0]=123; $arr[1]="chi ...

  3. JS基础语法---函数练习part2---10个综合练习(运用:循环/数组/函数)

    练习1:求2个数中的最大值 function getMax(num1, num2) { return num1 > num2 ? num1 : num2; } console.log(getMa ...

  4. JavaScript 基础(数据类型、函数、流程控制、对象)

    一.JavaScript概述 1.1 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Script ...

  5. python基础--冒泡排序

    1.冒泡排序 1.首先用一张图来形象描述一下冒泡排序: 2.废话不多说,直接上代码 # 1.导入随机模块 import random # 2.定义一个列表,列表内的元素为20个100以内的随机整数 l ...

  6. JavaScript (四) js的基本语法 - - 函数练习、arguments、函数定义、作用域、预解析

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.函数练习 1.求最值 // - 求2个数中的最大值 function getMax(num1, nu ...

  7. py_冒泡排序

    import random """ 排序:将一组无序记录序列调整为有序记录序列 列表排序:将无序列表调整为有序列表 输入:列表 输出:有序列表 升序与降序 内置函数sor ...

  8. 常用js代码整理、收集

    个人整理了一下个人常用到的一些js代码,以方便学习以及日后使用,或许有一些是个人之前从网上摘下来的,但是不记得是具体从哪里来的了,如果你看到有一段代码跟你的文章很相似甚至一样,请不要气愤,请告诉我,我 ...

  9. java基础总结——数组

    数组需要掌握的: 1.数组的定义 2.数组的内存分配及特点 3.数组操作常见问题 4.数组常见操作 5.数组中的数组(理解) 数组唯一属性:length,即数组的长度. 1.数组定义 格式一: 元素类 ...

随机推荐

  1. GAN网络之入门教程(五)之基于条件cGAN动漫头像生成

    目录 Prepare 在上篇博客(AN网络之入门教程(四)之基于DCGAN动漫头像生成)中,介绍了基于DCGAN的动漫头像生成,时隔几月,序属三秋,在这篇博客中,将介绍如何使用条件GAN网络(cond ...

  2. 一文带你定制unittest测试用例的名称

    在之前的文章中,我在之前的文章中提到过,这里呢,考虑后,感觉之前的写法不够优雅,于是乎呢,我自己抽空去研究了下,主要是新写方法,这样呢,以后的要使用的时候,可以直接去使用,而不是每次换个环境就要修改环 ...

  3. nginx的脚本引擎(二)rewrite

    其实rewrite指令和上一篇说的if/set/return/break之类的没多大差别,但是rewrite用起来相对复杂,我就把他单独放到了这里.想要弄懂nginx的脚本引擎需要先明白处理reque ...

  4. Prometheus 入门教程(一):Prometheus 快速入门

    文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/ZXlBPHGcWeYh2hjBzacc3A Prometheus 是任何一个高级工程师必须要掌握的技 ...

  5. 打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),写出来真是泪牛满面啊。

    本程序可以完美输出,效果如下: 相信你已经很期待代码实现了吧,其实代码真的不难,关键是思想.我说说我的想法吧,首先我构造了一个数组,保存了上面图片中字符一行的一半.聪明的你肯定看出来了,上面多数字符都 ...

  6. 【并查集】BZOJ 1854 连续攻击游戏

    题目内容 洛谷链接 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并 ...

  7. lumen-ioc容器测试 (5)

    lumen-ioc容器测试 (1) lumen-ioc容器测试 (2) lumen-ioc容器测试 (3) lumen-ioc容器测试 (4) lumen-ioc容器测试 (5) lumen-ioc容 ...

  8. NCEP数据资料获取 地面抬升指数

    先放上数据地址:https://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.surface.html 美国国家环境预报中心(NCEP ...

  9. vue知识点12

    知识点归纳整理如下: 1. 数组用下标改变,或者对象增加属性,这样的改变数据   是不能触发视图更新的,要用 Vue.set(对象,属性,值) 或this.$set(对象,属性,值) 2. this. ...

  10. vue 用别名取代路径引用

    在项目开发过程中有可能很多包是没有放在npm上的,许多包需要下载到本地引用,这样一来我们只能通过require的方式来引用文件,但是路径的名字就会很长 例如 import Select from '. ...