【发布时间】:2020-11-20 16:38:18
【问题描述】:
我在 youtube 上看到了一些关于列表排序技术、冒泡排序和他们使用的代码的视频
list1 = [4, 8, 5, 3, 1]
for i in range(len(list1)-1, 0, -1):
for j in range(i):
if list1[j] > list1[j+1]:
t = list1[j]
list1[j] = list1[j+1]
list1[j+1] = t
print(list1)
在没有 python 的情况下我自己获取不同的列表并对其进行排序后,我发现了一个模式,并对代码进行了轻微的安排,我得到了相同的输出。
list1 = [4, 8, 5, 3, 1]
for i in range(1,len(list1)):
for j in range(len(list1)-1):
if list1[j] > list1[j+1]:
t = list1[j]
list1[j] = list1[j+1]
list1[j+1] = t
print(list1)
但是在这里,我只想知道逻辑是否相同,方法也是冒泡排序因为将来当要求我进行冒泡排序时,我不想这样做并最终感到尴尬:p
提前致谢:D
【问题讨论】:
-
一个从右到左迭代,另一个从左到右迭代。它们都是冒泡排序,只是镜像
-
@MitchelPaulin 从右到左和从左到右是否与升序或降序有关?
-
不是,那要看你if语句里有
>还是< -
@MitchelPaulin 他们没有被镜像。它们以完全相同的顺序执行完全相同的交换。
-
@MarkRansom 那不是做实际工作的人。这只是提供了一个限制或内部循环完成的次数。
标签: python python-3.x list bubble-sort