算法基础
一、要求:生成一个4*4的2维数组并将其顺时针旋转90度(二维数组90度旋转)
脚本如下:
array = [[col for col in range(4)] for row in range(4)] #初始化一个4*4的二维数组
for row in array: #旋转之前先看看数组的情况。
print(row)
'''
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
#要变成如下的样式:
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]
'''
print('-------------')
for r_index, row in enumerate(array):
for col_index in range(r_index, len(row)):
tmp = array[col_index][r_index] #get each rows' data by column's index
array[col_index][r_index] = array[r_index][col_index]
print(tmp, array[r_index][col_index])
array[r_index][col_index] = tmp
for r in array:
print(r)
print('---one big loop ---')
输出的结果:
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
[0, 1, 2, 3]
-------------
0 0
0 1
0 2
0 3
[0, 0, 0, 0]
[1, 1, 2, 3]
[2, 1, 2, 3]
[3, 1, 2, 3]
---one big loop ---
1 1
1 2
1 3
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 3]
[3, 3, 2, 3]
---one big loop ---
2 2
2 3
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]
---one big loop ---
3 3
[0, 0, 0, 0]
[1, 1, 1, 1]
[2, 2, 2, 2]
[3, 3, 3, 3]
---one big loop ---
二、冒泡算法
需求:请按照从小到大对列表 [13, 22, 6, 99, 11] 进行排序
思路:相邻两个值进行比较,将较大的值放在右侧,依次比较!
脚本内容:
li = [13, 22, 6, 99, 11]
for i in range(1,5):
for m in range(len(li)-i):
if li[m] > li[m+1]:
temp = li[m+1]
li[m+1] = li[m]
li[m] = temp |