对销售额的排序采用堆排序法编写代码
时间: 2023-08-23 21:34:51 浏览: 81
好的,以下是使用堆排序法对销售额进行排序的示例代码(使用 Python 语言实现):
```python
def heap_sort(arr):
n = len(arr)
# 从最后一个非叶子节点开始构建大根堆
for i in range(n // 2 - 1, -1, -1):
heapify(arr, n, i)
# 逐个将堆顶元素(最大值)移动到末尾
for i in range(n - 1, 0, -1):
arr[0], arr[i] = arr[i], arr[0]
heapify(arr, i, 0)
def heapify(arr, n, i):
largest = i # 初始化最大值为当前节点
left = 2 * i + 1
right = 2 * i + 2
# 比较左子节点和当前节点的大小
if left < n and arr[left] > arr[largest]:
largest = left
# 比较右子节点和当前节点的大小
if right < n and arr[right] > arr[largest]:
largest = right
# 如果最大值不是当前节点,则交换最大值和当前节点,同时递归地调整子树
if largest != i:
arr[i], arr[largest] = arr[largest], arr[i]
heapify(arr, n, largest)
# 示例输入
sales = [10, 30, 20, 50, 40]
# 使用堆排序法对销售额进行排序
heap_sort(sales)
# 输出排序后的结果
print(sales)
```
运行以上代码,输出结果为:
```
[10, 20, 30, 40, 50]
```
说明销售额已经按照从小到大的顺序排好了序。
阅读全文