ef bubbleSort(arr): n = len(arr) # 遍历所有数组元素 for i in range(n): # Last i elements are already in place #**********begin1********** for i in arr(0, n-i-1): #**********end1********** if arr[j] > arr[j+1] : arr[j], arr[j+1] = arr[j+1], arr[j] arr = [64, 34, 25, 12, 22, 11, 90] #**********begin2********** bubbleSort(j) #**********end2********** print ("排序后的数组:") for i in range(len(arr)): print ("%d" %arr[i]),
时间: 2023-07-05 08:33:55 浏览: 146
VB数组运用.rar_vb arr_vb 数组
这段代码存在一些问题:
1. 在第一个 for 循环中,循环变量 i 已经被使用,但在内层的 for 循环中,又使用了 i ,这会导致内层循环覆盖了外层循环的 i,导致程序出错。
2. 在第二个 for 循环中,应该是 range(0, n-i-1),而不是 arr(0, n-i-1)。
3. 在主程序中,应该传入数组 arr,而不是变量 j。
下面是修改后的代码:
```
def bubbleSort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i], end=" ")
```
输出结果为:
```
排序后的数组:
11 12 22 25 34 64 90
```
阅读全文