关于#python#的问题:python冒泡排序中print((arr))显示none
问题描述:
def bubbleSort(arr):
# 获取数组长度
arr_len = len(arr)
# 外部大循环=》第几趟
for i in range(1, arr_len):
# 内部循环比较=》相邻数值进行比较
for j in range(0, arr_len - i):# 每次内循环的次数都需要总长度减去已排好位置的值的数量
if arr[j] > arr[j+1]: # 左右比较
arr[j], arr[j+1] = arr[j+1], arr[j] # 将数值大的放右边,数值小的放左边
arr = [64, 34, 25, 12, 22, 11, 90]
print(bubbleSort(arr))
问题相关代码,请勿粘贴截图 :print(bubbleSort(arr))
运行结果及报错内容 :none
我的解答思路和尝试过的方法 :就是不知道其中原因
我想要达到的结果:正常排序
答
你函数得return arr啊
你的函数没有返回值,你print当然是None了。
//
如果函数不想return arr;那么调用的地方得这么写:
bubbleSort(arr)
print(arr)
答
def bubbleSort(arr):
arr_len = len(arr)
for i in range(1, arr_len):
for j in range(0, arr_len - i):# 每次内循环的次数都需要总长度减去已排好位置的值的数量
if arr[j] > arr[j+1]: # 左右比较
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
arr = [64, 34, 25, 12, 22, 11, 90]
print(bubbleSort(arr))
运行结果