Python实现冒泡排序算法

2023-04-16 00:00:00 算法 排序 冒泡

冒泡排序是一种简单的排序算法,通过多次交换相邻的两个元素,将待排序的序列逐步转化为有序的序列。具体实现过程如下:

  1. 从待排序序列的起始位置开始,比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置,直到比较到序列的末尾位置。
  2. 将待排序序列的末尾位置指针减一,再次反复执行第一步操作。这样每次经过一轮比较后,待排序序列的最大元素就会浮动到序列的末尾位置。
  3. 在经过多轮比较后,待排序序列就会被转化为有序序列。

下面是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]

# 测试样例
nums = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
bubble_sort(nums)
print(nums)  # 输出结果为:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

如果需要使用字符串作为范例,可以将字符串转换为字符列表进行排序:

```python
def bubble_sort(s):
n = len(s)
# 外层循环控制排序轮数
for i in range(n-1):
# 内层循环控制每轮排序过程
for j in range(n-i-1):
if s[j] > s[j+1]:
s[j], s[j+1] = s[j+1], s[j]
return ''.join(s)

测试样例

s = list("pidancode.com")
result = bubble_sort(s)
print(result) # 输出结果为:'.aaccddeeimnop'

相关文章