采用随机两数随机生成十、百、万、百万 4个量级的数 据集,分别采用大纲要求的8个算法进行排序,对各个数据集(排 序前后共8个数据集)进行 主关键字的顺序和折半查找;对算法 运行时间进行统计分析,建 不用图、表来展示实验结果
时间: 2024-02-24 22:58:50 浏览: 202
非常感谢您的提问。根据您的问题,我可以给出以下回答:
首先,您提到要对四个量级的数据集进行排序和查找,我们可以分别采用以下数据集:
- 十:10个随机整数
- 百:100个随机整数
- 万:10000个随机整数
- 百万:1000000个随机整数
接下来,我们可以使用以下八个排序算法对每个数据集进行排序:
- 冒泡排序(Bubble Sort)
- 选择排序(Selection Sort)
- 插入排序(Insertion Sort)
- 希尔排序(Shell Sort)
- 归并排序(Merge Sort)
- 快速排序(Quick Sort)
- 堆排序(Heap Sort)
- 计数排序(Counting Sort)
排序后,我们可以对每个数据集进行主关键字的顺序和折半查找。主关键字可以选择每个数据集中的最后一个元素。折半查找的实现可以参考以下代码:
```python
def binary_search(arr, x):
low = 0
high = len(arr) - 1
mid = 0
while low <= high:
mid = (high + low) // 2
if arr[mid] < x:
low = mid + 1
elif arr[mid] > x:
high = mid - 1
else:
return mid
return -1
```
最后,我们可以统计每个算法的运行时间,并将结果展示在表格中,例如:
| 数据集 | 算法 | 排序前时间(秒) | 排序后时间(秒) | 主关键字顺序查找时间(秒) | 折半查找时间(秒) |
| --- | --- | --- | --- | --- | --- |
| 十 | 冒泡排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 选择排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 插入排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 希尔排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 归并排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 快速排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 堆排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 十 | 计数排序 | 0.0001 | 0.0002 | 0.00001 | 0.00002 |
| 百 | 冒泡排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 选择排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 插入排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 希尔排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 归并排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 快速排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 堆排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 百 | 计数排序 | 0.001 | 0.002 | 0.0001 | 0.0002 |
| 万 | 冒泡排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 选择排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 插入排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 希尔排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 归并排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 快速排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 堆排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 万 | 计数排序 | 0.1 | 0.2 | 0.01 | 0.02 |
| 百万 | 冒泡排序 | 10 | 20 | 1 | 2 |
| 百万 | 选择排序 | 10 | 20 | 1 | 2 |
| 百万 | 插入排序 | 10 | 20 | 1 | 2 |
| 百万 | 希尔排序 | 10 | 20 | 1 | 2 |
| 百万 | 归并排序 | 10 | 20 | 1 | 2 |
| 百万 | 快速排序 | 10 | 20 | 1 | 2 |
| 百万 | 堆排序 | 10 | 20 | 1 | 2 |
| 百万 | 计数排序 | 10 | 20 | 1 | 2 |
以上表格仅为示例,实际结果可能会有所不同。最后,我们可以根据表格中的数据进行统计分析,比如计算每个算法的平均运行时间、排序前后时间的比较等等。
阅读全文