《0039》第三章 Python编程进阶:常见算法讲解
1、冒泡排序
a、题目:列表数据[4,2,3,1] 用冒泡排序
a、冒泡排序的对比方式:相邻交换位置去对比
b、冒泡排序示例
list1=[4,2,3,1]
len1=len(list1)
print(len1)
for i in range(1,len1):
for j in range(1,len1-i+1):
if list1[j-1]>list1[j]:
list1[j-1],list1[j]=list1[j],list1[j-1]
print(list1)
输出结果:
4
[1, 2, 3, 4]
流程解析:
第一个循环控制外部循环总共循环多少次(循环三次)
第二个循环控制内部循环总共循环多少次(循环三次)
4,2,3,1
i=1 4231
j=1 (j-1 > j) 2431
j=2 (j-1 > j) 2341
j=3 (j-1 > j) 2314
i=2
j=1 (j-1 > j) 2314
j=2 (j-1 > j) 2134
i=3
j=1 (j-1 > j) 1234
2、选择排序
a、题目:列表数据[4,2,3,1] 用选择排序
a、选择排序的对比方式:找打最大值,拿出来去和别人对比。原理:在一组数据中从最开始找到最大(小)的元素,放在排序的起始位置
b、选择排序示例
list1=[4,2,3,1]
max_index=0
for i in range(0,len(list1)-1):
for j in range(i+1,len(list1)):
if list1[j]>list1[max_index]:
max_index=j
list1[i],list1[max_index]=list1[max_index],list1[i]
max_index=i+1
print(list1)
输出结果:[4, 3, 2, 1]
流程解析
4,2,3,1
第一次循环
i=0
j=1 2>4(否) max=0 4231
j=2 3>4(否) max=0 4231
j=3 1>4(否) max=0 4231
第二次循环
i=1
j=1 3>2(是) max=2 4231
j=2 1>2(否) max=2 4321
第三次循环
i=2
j=3 1>2(否) max=3 4321
3、递归算法
a、题目:计算1+2+3 用递归计算
a、递归的特点:函数内部自己调用自己(有出口,满足一个条件,就不执行)
b、递归算法示例
def sum_number(num):
if num==1:
return 1
temp=sum_number(num-1)
return temp+num
a=sum_number(3)
print(a)
输出结果:6
浙公网安备 33010602011771号