算法复杂度
分为时间复杂度、空间复杂度
- 时间复杂度
- 在排序之前先要对时间复杂度的概念有一个清晰的认识,它是用来描述算法的运行时间,通常用大O符号表示。
- 算法中语句被执行的次数越多,需要的时间就越长。算法中语句执行的次数叫语句频度/时间频度,用T(n)表示。
- 空间复杂度
- 执行算法需要的内存空间。
冒泡排序
重复的进过要排序的元素,依次比较相邻的两个元素,因为如果元素相同的话就不会交换,所以这种排序属于稳定排序算法。
时间复杂度: n²正在上传…重新上传取消
正在上传…重新上传取消
示例
lista = [3,33,4,12,63,1,55,32,6,7,36]
for j in range(len(lista)):
print('j: ', j)
for i in range(0, len(lista)-j-1):
print('i: ', i)
if lista[i] > lista[i + 1]:
print('lista[i],lista[i + 1]: ', lista[i],lista[i + 1])
lista[i],lista[i + 1] = lista[i + 1],lista[i]
print(lista)
结果:
D:\>python test.py
j: 0
i: 0
i: 1
lista[i],lista[i + 1]: 33 4
[3, 4, 33, 12, 63, 1, 55, 32, 6, 7, 36]
i: 2
lista[i],lista[i + 1]: 33 12
[3, 4, 12, 33, 63, 1, 55, 32, 6, 7, 36]
i: 3
i: 4
lista[i],lista[i + 1]: 63 1
[3, 4, 12, 33, 1, 63, 55, 32, 6, 7, 36]
i: 5
lista[i],lista[i + 1]: 63 55
[3, 4, 12, 33, 1, 55, 63, 32, 6, 7, 36]
i: 6
lista[i],lista[i + 1]: 63 32
[3, 4, 12, 33, 1, 55, 32, 63, 6, 7, 36]
i: 7
lista[i],lista[i + 1]: 63 6
[3, 4, 12, 33, 1, 55, 32, 6, 63, 7, 36]
i: 8
lista[i],lista[i + 1]: 63 7
[3, 4, 12, 33, 1, 55, 32, 6, 7, 63, 36]
i: 9
lista[i],lista[i + 1]: 63 36
[3, 4, 12, 33, 1, 55, 32, 6, 7, 36, 63]
j: 1
i: 0
i: 1
i: 2
i: 3
lista[i],lista[i + 1]: 33 1
[3, 4, 12, 1, 33, 55, 32, 6, 7, 36, 63]
i: 4
i: 5
lista[i],lista[i + 1]: 55 32
[3, 4, 12, 1, 33, 32, 55, 6, 7, 36, 63]
i: 6
lista[i],lista[i + 1]: 55 6
[3, 4, 12, 1, 33, 32, 6, 55, 7, 36, 63]
i: 7
lista[i],lista[i + 1]: 55 7
[3, 4, 12, 1, 33, 32, 6, 7, 55, 36, 63]
i: 8
lista[i],lista[i + 1]: 55 36
[3, 4, 12, 1, 33, 32, 6, 7, 36, 55, 63]
j: 2
i: 0
i: 1
i: 2
lista[i],lista[i + 1]: 12 1
[3, 4, 1, 12, 33, 32, 6, 7, 36, 55, 63]
i: 3
i: 4
lista[i],lista[i + 1]: 33 32
[3, 4, 1, 12, 32, 33, 6, 7, 36, 55, 63]
i: 5
lista[i],lista[i + 1]: 33 6
[3, 4, 1, 12, 32, 6, 33, 7, 36, 55, 63]
i: 6
lista[i],lista[i + 1]: 33 7
[3, 4, 1, 12, 32, 6, 7, 33, 36, 55, 63]
i: 7
j: 3
i: 0
i: 1
lista[i],lista[i + 1]: 4 1
[3, 1, 4, 12, 32, 6, 7, 33, 36, 55, 63]
i: 2
i: 3
i: 4
lista[i],lista[i + 1]: 32 6
[3, 1, 4, 12, 6, 32, 7, 33, 36, 55, 63]
i: 5
lista[i],lista[i + 1]: 32 7
[3, 1, 4, 12, 6, 7, 32, 33, 36, 55, 63]
i: 6
j: 4
i: 0
lista[i],lista[i + 1]: 3 1
[1, 3, 4, 12, 6, 7, 32, 33, 36, 55, 63]
i: 1
i: 2
i: 3
lista[i],lista[i + 1]: 12 6
[1, 3, 4, 6, 12, 7, 32, 33, 36, 55, 63]
i: 4
lista[i],lista[i + 1]: 12 7
[1, 3, 4, 6, 7, 12, 32, 33, 36, 55, 63]
i: 5
j: 5
i: 0
i: 1
i: 2
i: 3
i: 4
j: 6
i: 0
i: 1
i: 2
i: 3
j: 7
i: 0
i: 1
i: 2
j: 8
i: 0
i: 1
j: 9
i: 0
j: 10