宝藏排序:
冒泡排序解题思想:
算法步骤:
比较相邻元素,如果第一个大于第二个则交换。
从左往右遍历一遍,重复第一步,可以保证最大的元素在最后面
重复上述操作,可以得到第二大、第三大...
比较方法:
给定一个长度为n的列表,算法循环n-1次可以得到有序序列
第一次循环两两比较:<a[0],a[1]>..., a[n-4],a[n-3]>, a[n-3],a[n-2]>, <a[n-2],a[n-1
第二次循环两两比较: <a[0],a[1]>...., <a[n-4],a[n-3]> , a[n-3],a[n-2]>
第三次循环两两比较: <a[0],a[1 ]>,...,<a[n-4],a[n-3]
第i次循环两两比较: <a[0],a[1]>,..., a[n-i-1],a[n-i]>
第n-1次循环两两比较:<a[0],a[1]
时间复杂度:O(n^2),空间复杂度O(1),稳定
代码详解:
n = int(input())
a = list(map(int,input().split()))
# map函数:将逗号左边的数据依次分隔后以逗号右边的数据类型返回
# 循环n-1次,每次获得第n大
for i in range(1, n):
# 每次比较a[j]和a[j + 1]
for j in range(0, n - i):
if a[j] > a[j + 1]:


最低0.47元/天 解锁文章
2507





