【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