气泡排序数字概率

时间:2019-09-06 18:01:55

标签: python

我正在尝试一种用于冒泡排序的算法,但有一部分我不理解

 nums = [1,4,3,2,10,6,8,5]

 for i in range (len(nums)-1,0,-1):

     for j in range(i):

         if nums[j] > nums[j+1]:
             temp = nums[j]
             nums[j] = nums[j+1]
             nums[j+1] = temp

             print(nums)

这部分代码中的数字(-1,0,-1)是什么意思(没有它,它会正确排序)v v v

for i in range (len(nums)-1,0,-1):

2 个答案:

答案 0 :(得分:2)

Python中range的语法是-

range(start, end, step)

在您的情况下,循环本质上是从最后一个元素(索引n-1)开始,一次朝着第一个元素(索引0)移动。

答案 1 :(得分:0)

Okey: 第一个是起点,第二个是告诉python在哪里停止,最后一个是步骤。

len(nums)-它使您(列表)的长度(在本例中为8) len(nums)-1-它是8-1,我们这样做是因为当通过列表时,python将从0开始并以7结尾(仍为8个元素,但最后一个具有索引7而不是8), 我们将从步骤-1在0处停止。因此迭代看起来像:

num[len(nums)-1] = num[7]
num[len(nums)-1-1] = num[6]
num[len(nums)-1-1-1] = num[5]
.....
num[len(nums)-1-1-1-1-1-1-1] = num[0]