Python 写冒泡法数组排序
时间: 2024-06-18 13:01:45 浏览: 17
当然可以。在 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 array is:", sorted_arr)
```
相关问题
用python写冒泡法排序代码
我可以为你提供一个示例:
def bubbleSort(nums):
# 设置一个flag,如果这个数组已经有序,就提前结束
flag = True
for i in range(len(nums)-1):
for j in range(len(nums)-i-1):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
flag = False
if flag:
break
return nums
nums = [4, 5, 6, 3, 2, 1]
bubbleSort(nums)
print(nums)
使用python写冒泡排序法
### 回答1:
好的,下面是用 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[
### 回答2:
冒泡排序是一种简单的排序算法,在Python中可以用以下代码实现:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n): # 外层循环控制比较的次数,共需要比较n-1次
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是待排序的列表。首先,使用len()函数获取列表的长度n,然后进行外层循环,循环次数为n-1,表示需要比较n-1次。在内层循环中,使用range()函数进行相邻元素的比较。如果前一个元素大于后一个元素,则交换位置。通过重复进行外层和内层循环,直到所有元素都按照从小到大的顺序排列。
以下是使用冒泡排序算法对一个列表进行排序的示例:
```python
my_list = [5, 3, 8, 1, 2]
bubble_sort(my_list)
print(my_list) # 输出:[1, 2, 3, 5, 8]
```
这段代码首先定义一个包含整数的列表my_list,然后调用bubble_sort函数对该列表进行排序。排序完成后,使用print语句输出排序结果。
### 回答3:
冒泡排序是一种简单的排序算法,通过多次遍历数组,比较相邻元素的大小,将较大(或较小)的元素逐步交换到最后的位置,从而实现排序。下面是使用Python编写冒泡排序的代码示例:
```python
def bubble_sort(arr):
n = len(arr)
for i in range(n-1):
for j in range(n-1-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]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
```
首先定义了一个 `bubble_sort` 函数,该函数接受一个数组 `arr` 作为参数。然后使用两个嵌套循环进行遍历,外层循环 `i` 用于控制遍历的次数,内层循环 `j` 用于比较相邻元素的大小。如果当前元素 `arr[j]` 大于下一个元素 `arr[j+1]`,则交换它们的位置。通过多次遍历和交换,将最大的元素逐步交换到最后的位置。最后返回排序后的数组。
以上代码示例的输出结果为:`[11, 12, 22, 25, 34, 64, 90]`。即将原始数组 `[64, 34, 25, 12, 22, 11, 90]` 进行冒泡排序后得到的有序数组。