折半插入排序从键盘输入记录数,依次输入各记录元素数据项的值,并以这些数值为记录的关键字对记录进行排序。最后在屏幕上输出排序后的记录。
时间: 2024-04-30 11:19:51 浏览: 26
好的,以下是折半插入排序的 Python 代码实现,你可以参考一下:
```python
def binary_insertion_sort(arr):
for i in range(1, len(arr)):
left, right = 0, i - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] <= arr[i]:
left = mid + 1
else:
right = mid - 1
key = arr[i]
for j in range(i - 1, left - 1, -1):
arr[j + 1] = arr[j]
arr[left] = key
def main():
n = int(input("请输入记录数:"))
arr = []
for i in range(n):
arr.append(int(input("请输入第{}个元素:".format(i+1))))
binary_insertion_sort(arr)
print("排序后的记录:", arr)
if __name__ == '__main__':
main()
```
这段代码中,我们定义了一个 `binary_insertion_sort` 函数,该函数采用折半插入排序算法对列表进行排序。然后在 `main` 函数中,我们先从键盘输入记录数 `n`,然后依次输入各记录元素数据项的值,并将它们存储在列表 `arr` 中。最后调用 `binary_insertion_sort` 函数对列表进行排序,并输出排序后的记录。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)