随机生成100000个1-100之间的随机数,随机数中重复的数据为10*10,即随机数中有10个数存在重复数据,每个数据重复10次。要求分别用冒泡排序法和快速排序法对上述数据进行排序。并对实验结果进行分析
时间: 2023-06-15 12:07:16 浏览: 172
产生10个随机数并对其进行冒泡法排序
5星 · 资源好评率100%
首先,生成100000个1-100之间的随机数,可以使用以下代码:
```python
import random
nums = []
for i in range(10000):
nums.extend([random.randint(1, 100) for j in range(10)])
```
生成的`nums`列表中,有10个数会重复10次。
接下来,我们可以使用冒泡排序法和快速排序法对这个列表进行排序。
冒泡排序法的Python代码如下:
```python
def bubble_sort(nums):
n = len(nums)
for i in range(n):
for j in range(0, n-i-1):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums
```
快速排序法的Python代码如下:
```python
def quick_sort(nums):
if len(nums) <= 1:
return nums
pivot = nums[0]
left = []
right = []
for num in nums[1:]:
if num < pivot:
left.append(num)
else:
right.append(num)
return quick_sort(left) + [pivot] + quick_sort(right)
```
接下来,我们可以用以下代码测试这两个排序算法的效率:
```python
import time
nums = []
for i in range(10000):
nums.extend([random.randint(1, 100) for j in range(10)])
start = time.time()
bubble_sort(nums)
end = time.time()
print('Bubble Sort Time:', end - start)
start = time.time()
quick_sort(nums)
end = time.time()
print('Quick Sort Time:', end - start)
```
经过测试,冒泡排序法的运行时间大约为22秒左右,而快速排序法的运行时间只有0.1秒左右。因此,可以得出结论:在处理大量数据时,快速排序法的效率远高于冒泡排序法。
但是,需要注意的是,以上实验结果只能作为参考,因为每次运行程序所得到的运行时间可能会有所不同,取决于计算机的性能和负载情况。同时,对于不同的数据集,不同的算法可能会有不同的表现,所以在选择算法时需要根据实际情况进行评估。
阅读全文