100,000 个 1 到 100 之间随机数排序:冒泡排序法和快速排序法

本文将介绍如何生成 100,000 个 1 到 100 之间的随机数,其中包含 10 个重复数据,每个数据重复 10 次。然后使用冒泡排序法和快速排序法对这些随机数进行排序,并提供 Python 代码示例。

随机数生成及重复数据添加

首先,我们需要生成 100,000 个 1 到 100 之间的随机数,并在其中添加 10 个重复数据,每个数据重复 10 次。

import random

# 生成随机数
nums = [random.randint(1, 100) for i in range(100000)]
# 添加重复数据
for i in range(10):
    idx = random.randint(0, 99999)
    for j in range(10):
        nums.insert(idx, nums[idx])

冒泡排序法

冒泡排序法是一种简单的排序算法,它通过不断比较相邻元素并交换位置来实现排序。

  1. 从第一个数开始,依次比较相邻的两个数,如果前面的数比后面的数大,则交换它们的位置,直到最后一个数;
  2. 重复以上步骤,直到所有数都排好序。
# 冒泡排序
for i in range(len(nums)-1):
    for j in range(len(nums)-i-1):
        if nums[j] > nums[j+1]:
            nums[j], nums[j+1] = nums[j+1], nums[j]
print(nums)

快速排序法

快速排序法是一种高效的排序算法,它通过递归的方式将数组划分为两个子数组,并分别对子数组进行排序。

  1. 选定一个基准数(一般为第一个数),将数组中小于基准数的数放在左边,大于基准数的数放在右边,基准数放在中间;
  2. 对左右两边的数组重复以上步骤,直到所有数都排好序。
# 快速排序
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)
nums = quick_sort(nums)
print(nums)

总结

本文介绍了如何生成包含重复数据的随机数,并使用冒泡排序法和快速排序法对其进行排序。冒泡排序法简单易懂,但效率较低,适合小规模数据排序。快速排序法效率较高,适合大规模数据排序。

100,000 个 1 到 100 之间随机数排序:冒泡排序法和快速排序法

原文地址: https://www.cveoy.top/t/topic/n5in 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录