请写一个Python函数: 使用冒泡排序法对一串两位数进行排序,具体排序要求是:对十位数的数据进行升序排列,如果十位数的数据相同,那么再根据个位数的数据进行降序排列。
时间: 2024-09-25 19:04:08 浏览: 29
当然可以。这是一个简单的Python函数,使用冒泡排序算法来满足你的需求:
```python
def bubble_sort_custom(numbers):
# 首先创建两个嵌套循环,外层控制遍历轮次,内层用于比较和交换元素
n = len(numbers)
for i in range(n - 1):
for j in range(0, n - i - 1):
# 比较十位和个位,如果十位相同则按个位降序
if int(numbers[j][0]) == int(numbers[j + 1][0]):
if int(numbers[j][1]) < int(numbers[j + 1][1]):
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
else:
# 如果十位不同,则直接按照十位升序
if int(numbers[j][0]) > int(numbers[j + 1][0]):
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]
return numbers
# 示例:
numbers_list = ['45', '12', '67', '38', '21']
sorted_numbers = bubble_sort_custom(numbers_list)
print(sorted_numbers) # 输出: ['12', '21', '38', '45', '67']
阅读全文