给一个用python写一个冒泡排序的代码
时间: 2023-09-07 22:04:42 浏览: 109
### 回答1:
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# Last i elements are already in place
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]),
### 回答2:
冒泡排序是一种简单的排序算法,它通过重复比较相邻的两个元素并交换位置来将列表中的元素按照升序排列。下面是用Python编写的冒泡排序代码:
def bubble_sort(nums):
n = len(nums)
for i in range(n-1):
for j in range(n-i-1):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
上述代码首先定义了一个名为`bubble_sort`的函数,它接受一个列表参数`nums`,并返回经过冒泡排序后的列表。
代码中的第一个循环`for i in range(n-1)`用于控制排序的轮数,共需要n-1轮,其中n是列表长度。
第二个循环`for j in range(n-i-1)`用于比较相邻元素并交换位置,由于每一轮排序后最大的元素已经被交换到了最后,所以下一轮只需比较到n-i-2的位置即可。
在每次比较时,如果当前元素大于相邻元素,则交换位置。这样每一轮排序都会将一个最大的元素放到正确的位置上。
最后,将排序后的列表返回。
例如,对于输入列表[5, 3, 8, 1, 2],经过冒泡排序后的结果为[1, 2, 3, 5, 8]。
### 回答3:
冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,如果它们的顺序错误就将它们交换位置,直到整个序列有序为止。以下是用Python编写的冒泡排序代码:
```python
def bubble_sort(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]
return arr
# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("排序后的数组:", sorted_arr)
```
这段代码中,我们定义了一个名为`bubble_sort`的函数,它接受一个数组`arr`作为参数。在函数内部,我们使用两个嵌套的循环来遍历数组并进行比较。外部循环控制总体遍历次数,内部循环用于比较相邻元素并进行交换。
在每一轮内部循环中,我们比较当前元素和下一个元素的值,如果当前元素大于下一个元素,则交换它们的位置。这样,每一轮循环都会将最大(或最小)的元素移动到末尾。因为每一轮都能确定一个最大(或最小)的元素,所以外部循环的范围会逐渐减小,直到整个序列有序为止。
最后,我们使用一个示例数组进行测试,并打印排序后的数组。输出结果为`[11, 12, 22, 25, 34, 64, 90]`,表示数组已经按照从小到大的顺序排好了。
阅读全文