利用随机数生成函数,产生待排序序列,序列长度可任意指定 设计CSort类 ,完成冒泡排序、选择排序和插入排序三种排序方法设计 调用系统函数,实现算法运行时间统计
时间: 2024-06-12 18:07:28 浏览: 85
6种排序算法选择排序,冒泡排序,插入排序基数排序,快速排序,归并排序
下面是Python实现CSort类的代码示例:
```python
import random
import time
class CSort:
@staticmethod
def bubble_sort(lst):
n = len(lst)
for i in range(n):
for j in range(n - i - 1):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
@staticmethod
def selection_sort(lst):
n = len(lst)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if lst[j] < lst[min_idx]:
min_idx = j
lst[i], lst[min_idx] = lst[min_idx], lst[i]
@staticmethod
def insertion_sort(lst):
n = len(lst)
for i in range(1, n):
key = lst[i]
j = i - 1
while j >= 0 and lst[j] > key:
lst[j + 1] = lst[j]
j -= 1
lst[j + 1] = key
@staticmethod
def generate_random_list(n):
lst = []
for i in range(n):
lst.append(random.randint(0, n))
return lst
@staticmethod
def measure_time(func, *args):
start_time = time.time()
func(*args)
end_time = time.time()
return end_time - start_time
# Example usage
lst = CSort.generate_random_list(1000)
print("Bubble Sort Time:", CSort.measure_time(CSort.bubble_sort, lst))
print("Selection Sort Time:", CSort.measure_time(CSort.selection_sort, lst))
print("Insertion Sort Time:", CSort.measure_time(CSort.insertion_sort, lst))
```
在上面的示例中,我们定义了一个名为`CSort`的类,其中包含了三种排序算法的实现:冒泡排序、选择排序和插入排序。我们还定义了一个静态方法`generate_random_list`,用于生成随机数序列。
我们还定义了一个名为`measure_time`的静态方法,用于计算排序算法的运行时间。这个方法接受一个函数和一些参数,并在函数执行前和执行后记录时间戳。最后,它返回函数执行的时间差。
在上面的示例中,我们生成了一个长度为1000的随机数序列,并分别使用三种排序算法计算了它们的运行时间。
阅读全文