Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中执行气泡排序_Python_Algorithm_Sorting - Fatal编程技术网

如何在Python中执行气泡排序

如何在Python中执行气泡排序,python,algorithm,sorting,Python,Algorithm,Sorting,问题:您得到了一个大小为N的数组A。您需要使用冒泡排序按非降序对该数组进行排序。但是,您不需要打印已排序的数组。您只需要打印使用气泡排序对该数组进行排序所需的交换数 输入格式 第一行由一个表示数组大小的整数N组成。下一行包含N个表示数组元素的空格分隔整数 输出格式在一行中打印所需答案 约束1代码中的问题是返回的是交换变量,而不是数组。 您的元素交换不完整。在python中,您可以使用这个符号a,b=b,a轻松地交换两个元素 还有一件事您不需要返回数组更改,它将自动反映在原始数组中 试试这个: d

问题:您得到了一个大小为N的数组A。您需要使用冒泡排序按非降序对该数组进行排序。但是,您不需要打印已排序的数组。您只需要打印使用气泡排序对该数组进行排序所需的交换数

输入格式

第一行由一个表示数组大小的整数N组成。下一行包含N个表示数组元素的空格分隔整数

输出格式在一行中打印所需答案


约束1代码中的问题是返回的是交换变量,而不是数组。 您的元素交换不完整。在python中,您可以使用这个符号a,b=b,a轻松地交换两个元素

还有一件事您不需要返回数组更改,它将自动反映在原始数组中

试试这个:

def bubbleSort(arr, n):
    swap = 0
    for i in range(n - 1):
        for j in range(n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                swap += 1
    return swap
a = [5, 2, 3, 1, 4]
print('swaps =',bubbleSort(a, 5))
print(a)
输出:


请出示证件。此函数必须返回一个数字。你打印出来了吗?我正试图用一个函数来解决这个问题。在我理解了实现之后,我可以使用输入函数轻松地完成它。@WannaBeBayesian您希望从返回中得到什么
def bubbleSort(arr, n):
    swap = 0
    for i in range(n - 1):
        for j in range(n - i - 1):
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]
                swap += 1
    return swap
a = [5, 2, 3, 1, 4]
print('swaps =',bubbleSort(a, 5))
print(a)
swaps = 6
[1, 2, 3, 4, 5]