nums = [2, 5, 1, 8, 7, 3, 4, 6, 9] print (nums) for i in range (len(nums)): for j in range (len(nums)-i-1): if nums[j] > nums[j+1]: nums[j], nums[j+1] = nums[j+1], nums[j] print (nums)
Внешний цикл все понятно, а внутренний цикл на каждой итерации внешнего присваивает в самом начале “j=0”. Почему ноль?
**********************************************************
Немного переделал цикл чтобы мне было понятнее суть:
#СОРТИРОВКА ПУЗЫРЬКОМ nums = [2, 5, 1, 8, 7, 3, 4, 6, 9] print ("\nДлинна массива",len(nums) ) print (nums,"\n") for i in range (len(nums)): print ("Итерация*****************",i+1) print ("i=",i) print ("len(nums)-i-1 ==>",len(nums)-i-1, "число ", nums[len(nums)-i-1]) a=input( "Что-то введите \n" ) for j in range (len(nums)-i-1): print ("j=",j) print("больше ли ",nums[j], "числа", nums[j+1]) if nums[j] > nums[j+1]: print("@@@@@@@TRUE@@@@@@@") nums[j], nums[j+1] = nums[j+1], nums[j] print(nums) a=input("Внутренний цикл\n") print (nums)
https://prnt.sc/1x50q8o
https://prnt.sc/1x50tf4
“j” постоянно обнуляется.
*********************************************************
Просьба объяснить доходчиво. Заранее благодарен