【Python算法作业】求数组中大小最接近2个元素的差

这篇博客介绍了如何解决Python算法作业中的一个问题:在给定数组中找出大小最接近的两个元素之间的差值。通过示例展示了输入数组、排序过程和计算差值的步骤,最终得出最接近的差值为0.0。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【Python算法作业】求数组中大小最接近2个元素的差

# 【1.2.9】求数组中大小最接近2个元素的差
"""
算法思想:①先用【快速排序】对数组从大到小排序;
          ②对排列后的降序数组,计算相邻两个元素的差;
          ③找出【最小的差】即可。
"""

# 快速排序算法
'''
参考(图解、其他语言编写的代码):
    《快速排序(过程图解)》(有错误,注意甄别)[https://dreams.blog.youkuaiyun.com/article/details/80882649]
    《图解快速排序》(有错误,注意甄别)[https://www.cnblogs.com/MOBIN/p/4681369.html]
'''
def quickSort(L, _left, _right):
  left = _left  # 因为需要递归,所以先保存 左指针(哨兵)
  right = _right  # 因为需要递归,所以先保存 右指针(哨兵)
  baseNum = L[left]  # 将基准元素设置为 L[left]
  # 右左交替扫描,直到两个指针(哨兵) left == right
  while (left != right):
    # 先从右向左扫描(因为选择的 baseNum 基准元素是最左边的L[left])
    #   找到第1个比base基准元素小的元素
    while (right > left and L[right] <= baseNum):  # 降序排列,使用【<=】;如果是升序排列,使用【>=】
      right = right - 1
    # 需要交替 进行右、左扫描:现进行【从左往右】扫描
    while (left < right and L[left] >= baseNum):  # 降序排列,使用【>=】;如果是升序排列,使用【<=】
      left = left + 1
    if (left < right):  # 交换 两个指针(哨兵) left、 right 所指的值
      tem
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值