用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后再输入一个数插入该数组中,要求保持原序不变并输出该数组的21个数。
时间: 2025-02-09 17:17:20 浏览: 52
冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个过程会持续到没有任何一对数字需要交换,也就是说整个序列已经有序。
首先,对于20个数的降序排列,我们会使用冒泡排序算法,从大到小逐个元素进行比较,较大的元素向右移动,直到整个数组按降序排列。这里假设我们有一个名为`arr`的数组,初始长度为20。
```python
def bubble_sort_descending(arr):
n = len(arr)
for i in range(n):
# Last i elements are already in place
for j in range(0, n - i - 1):
if arr[j] < arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr
# 初始化数组,例如 arr = [...]
arr_sorted = bubble_sort_descending(arr)
```
然后,当用户输入一个新的数值`num`,我们需要将其插入到已排序数组的适当位置,保证原有的顺序不受影响。这通常通过二分查找找到正确的插入点,因为数组已经是有序的。
```python
def insert_in_sorted(arr, num):
low, high = 0, len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] > num:
high = mid - 1
else:
low = mid + 1
arr.insert(low, num)
return arr
# 输入新的数 num
new_num = int(input("请输入一个数:"))
sorted_arr_with_new_num = insert_in_sorted(arr_sorted, new_num)
```
现在,`sorted_arr_with_new_num`包含了原来的20个数以及新插入的数,仍然按照降序排列。
阅读全文
相关推荐










