冒泡排序题目 python
时间: 2024-08-17 12:03:29 浏览: 44
冒泡排序是一种简单的排序算法,它的基本思想是通过不断交换相邻的两个元素,逐渐把较大的数“浮”到数组的顶部。以下是用Python实现冒泡排序的一个简单示例:
```python
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 每轮遍历时最后一项已经排好序了,所以内层循环从0到n-i-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]
return arr
# 示例:
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = bubble_sort(arr)
print("Sorted array:", sorted_arr)
相关问题
python中冒泡排序和选择排序相关题目练习
当然,我可以帮你练习一下冒泡排序和选择排序的相关题目。以下是两个示例题目和对应的解答:
题目1:使用冒泡排序算法对列表 [5, 3, 8, 6, 7] 进行从小到大的排序。
解答1:
```python
def bubble_sort(arr):
n = len(arr)
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]
return arr
nums = [5, 3, 8, 6, 7]
sorted_nums = bubble_sort(nums)
print(sorted_nums)
```
输出:
```
[3, 5, 6, 7, 8]
```
题目2:使用选择排序算法对列表 [9, 2, 4, 7, 1] 进行从小到大的排序。
解答2:
```python
def selection_sort(arr):
n = len(arr)
for i in range(n-1):
min_idx = i
for j in range(i+1, n):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
return arr
nums = [9, 2, 4, 7, 1]
sorted_nums = selection_sort(nums)
print(sorted_nums)
```
输出:
```
[1, 2, 4, 7, 9]
```
希望这些题目能够帮助你练习冒泡排序和选择排序的算法。如果有任何其他问题,请随时提问!
python入门排序题目
Python入门排序题目的经典例子通常涉及各种排序算法,如冒泡排序、插入排序、选择排序、希尔排序、归并排序、快速排序等。下面简单介绍几个常见的排序算法:
1. 冒泡排序:通过不断交换相邻的未按序元素,直到整个序列有序。例如:
```python
def bubble_sort(lst):
for i in range(len(lst)):
for j in range(len(lst) - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
```
2. 插入排序:将每个元素插入到已排序部分的合适位置。如:
```python
def insertion_sort(lst):
for i in range(1, len(lst)):
key = lst[i]
j = i - 1
while j >= 0 and key < lst[j]:
lst[j + 1] = lst[j]
j -= 1
lst[j + 1] = key
return lst
```
3. 遍历排序列表:如使用 Python 的内置 `sorted()` 函数或列表推导式对整数列表排序:
```python
numbers = [4, 2, 9, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
```
阅读全文