关于python的冒泡算法
列表中的 1 被排序到列表的第一位了
你可以了解Python List sort()方法 我一直没搞懂什么是冒泡算法,现在仍然没搞懂 楼上说的是 冒泡排序比较的是相邻两个元素的值,因此不应该使用 n > n ,而应该是 n > n for i in a
if (a<a)
a=a
这样就人上循环就得到最大值,这样两个for循环嵌套就可以得到非序
不过这只是了解算法了,python中有numy和pands库,很方算就得到排序
你这像插入排序的一种变化 Phydora 发表于 2021-11-14 15:06
冒泡排序比较的是相邻两个元素的值,因此不应该使用 n > n ,而应该是 n > n
换句话说,i 只用于决定当前排序的轮数,而 j 才是决定排序对象的那个参数
具体代码如下,我这是正序排序,如果需要逆序排序,将“>”改为“<”即可
n =
for i in range(len(n)):
for j in range(len(n)-i-1):
if n > n:
n,n = n,n
print(n)
另外注意 j 的范围用的是 len(n)-i-1 ,因为已经排序好的元素没比较重复比较,浪费资源,因此这里要减 i
最后就是,如二楼所言,想图省事就直接 n.sort()(降序排序是 n.sort(reverse=True)) 调试一下就能发现错误了,应该是n > n https://visualgo.net/zh/sorting7冒泡执行可以看到演示
页:
[1]
2