使用python编程冒泡排序时降序和升序的区别是什么
时间: 2024-10-10 10:06:17 浏览: 25
python实现冒泡排序算法的两种方法
在使用Python编写冒泡排序算法时,无论是升序还是降序,基本的逻辑是一致的,都是通过两层循环遍历数组,比较相邻元素并交换位置。区别在于判断元素是否需要交换的标准不同。
**升序排序(从小到大)**:
当元素A大于元素B时,进行交换,即如果`arr[j] > arr[j+1]`,则交换`arr[j]`和`arr[j+1]`的位置,使得较小的元素向左移动。
**降序排序(从大到小)**:
相反,当元素A小于元素B时才进行交换,即如果`arr[j] < arr[j+1]`,则交换`arr[j]`和`arr[j+1]`,这样较大的元素就会逐渐“沉”到数组的前面。
下面是针对降序的修改版冒泡排序示例:
```python
def bubble_sort_descending(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
# 降序时,交换条件变成 arr[j] < arr[j+1]
if arr[j] < arr[j+1]: # 或者直接使用 arr[j] > arr[j+1] 来做升序,这里反过来了
arr[j], arr[j+1] = arr[j+1], arr[j]
# 示例
arr = [64, 34, 25, 12, 22, 11, 90]
bubble_sort_descending(arr)
print("降序排序后的数组:")
for i in range(len(arr)):
print("%d" %arr[i]),
```
阅读全文