用冒泡排序和快速排序对任意十个整数按照升序排列
时间: 2023-07-08 11:52:36 浏览: 105
假设我们要排序的十个整数为:5, 3, 9, 1, 7, 2, 8, 4, 6, 0。
首先我们来看冒泡排序的实现:
1. 进行9轮冒泡,每轮冒泡将最大的数移动到数列的最后。
2. 在每轮冒泡中,对相邻的两个数进行比较,如果前一个数比后一个数大,则交换这两个数。
3. 最后得到排好序的数列。
代码实现:
```python
def bubble_sort(numbers):
for i in range(len(numbers)-1):
for j in range(len(numbers)-1-i):
if numbers[j] > numbers[j+1]:
numbers[j], numbers[j+1] = numbers[j+1], numbers[j]
return numbers
numbers = [5, 3, 9, 1, 7, 2, 8, 4, 6, 0]
sorted_numbers = bubble_sort(numbers)
print(sorted_numbers)
```
输出结果为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
然后我们来看快速排序的实现:
1. 选择一个基准值,将数列分为左右两部分,左边的数都比基准值小,右边的数都比基准值大。
2. 对左右两部分分别进行递归排序,直到各部分只剩下一个数或为空。
3. 最后得到排好序的数列。
代码实现:
```python
def quick_sort(numbers):
if len(numbers) <= 1:
return numbers
pivot = numbers[0]
left = []
right = []
for num in numbers[1:]:
if num < pivot:
left.append(num)
else:
right.append(num)
return quick_sort(left) + [pivot] + quick_sort(right)
numbers = [5, 3, 9, 1, 7, 2, 8, 4, 6, 0]
sorted_numbers = quick_sort(numbers)
print(sorted_numbers)
```
输出结果为:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
可以看出,两种排序方法都能够对给定的十个整数进行升序排列。不过,快速排序的时间复杂度比冒泡排序低,适用于大规模数据排序。
阅读全文