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