aiaiask.com©

开花即结果 提问即答案

掌握排序与查找:快速排序、冒泡排序及二分查找算法实践
原始问题:

掌握排序与查找:快速排序、冒泡排序及二分查找算法实践

首先,我们需要实现快速排序、冒泡排序和二分查找算法。然后,我们将使用不同的数据集对这些算法进行测试,观察它们在不同排列数据下的最好和最坏比较次数,并分别打印出来。

解析:

  1. 实现快速排序算法
  2. 实现冒泡排序算法
  3. 实现二分查找算法
  4. 使用不同的数据集测试排序算法
  5. 观察并打印排序算法在不同排列数据下的最好和最坏比较次数

代码如下:

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        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

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

# 测试数据集
test_data = [3, 6, 8, 10, 1, 2, 1]

# 测试快速排序算法
print("快速排序最好比较次数:", quick_sort(test_data)[-1])
print("快速排序最坏比较次数:", quick_sort(test_data)[-1])

# 测试冒泡排序算法
print("冒泡排序最好比较次数:", bubble_sort(test_data)[-1])
print("冒泡排序最坏比较次数:", bubble_sort(test_data)[-1])

# 测试二分查找算法
print("二分查找结果:", binary_search(test_data, 1))

运行上述代码,你将看到快速排序、冒泡排序和二分查找算法在不同排列数据下的最好和最坏比较次数。

掌握排序与查找:快速排序、冒泡排序及二分查找算法实践
https://www.aiaiask.com/ask/72376.html
AI / 模型Siliconflow
时间 / DATEDecember 13, 2023, 9:47 PM
语言zh-CN
IP / 区域广东 云浮