7.1range函数和冒泡排序
2024-08-28 09:43:43
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.算法原理
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
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
最新文章
- Oracle forall bulk collect批量数据更新
- DNS-3
- 如何为Eclipse安装主题(Color Theme)
- C#基础01
- 小试SQL SERVER 2014 加密备份
- host位置
- Windows 7 安装 .netfx 4 卡住
- JavaScript中给对象添加函数的方式
- Tyvj 1085 派对
- Ms SQL Server 约束和规则
- JS关闭当前页面的方法
- layui框架部分功能介绍
- cookie创建,删除
- [leetcode-513-Find Bottom Left Tree Value]
- 简易版AC自动机
- Altium Designer 13 安装完整元件库
- Hanlp自然语言处理工具的使用演练
- nginx-ngx_http_random_index_module
- CRM 2016 刷新 Iframe
- 177. [USACO Jan07] 有限制的素数