# 我只是一个Python的初学者,基于刚学的递归函数,做了一个鸡肋的
# 只能排列表同类型数据的排序程序,请大神们多多指点,不喜勿喷。
def quite_sort(list_nums):
"""
用函数递归进行数列的排序
:param list_nums: 输入的列表.暂时只能比较列表中的元素
:return: 排好顺序的列表(我做的是升序排列)
"""
if len(list_nums) < 2:
return list_nums
else:
norm_num = list_nums[0] # 以列表第一个元素为标准依次比较元素大小
bigger_nums = []
small_nums = []
for i in list_nums[1:]:
if norm_num < i:
bigger_nums.append(i) # 比标准数大的放入大数列表
else:
small_nums.append(i)
# 最后将较小数列表+标准数列表+大数列表 然后输出
return quite_sort(small_nums) + [norm_num] + quite_sort(bigger_nums) # 最后将较小数列表+标准数列表+大数列表 然后输出
print(quite_sort([15, 77, 44, 1545, 4, 44, 11, 55, 9.9, 74, 33, 22, 66, -1, -66]))
def quite_sort(list_nums):
"""
用函数递归进行数列的排序
:param list_nums: 输入的列表.暂时只能比较列表中的元素,列表中只能是同类型的数据
:return: 排好顺序的列表(我做的是升序排列)
"""
if len(list_nums) < 2:
return list_nums
else:
norm_num = list_nums[int(len(list_nums) / 2)] # 取中间列表值作为比较标准
bigger_nums = []
small_nums = []
list_nums.pop(int(len(list_nums) / 2))
for i in list_nums[:]:
if norm_num < i:
bigger_nums.append(i)
else:
small_nums.append(i)
return quite_sort(small_nums) + [norm_num] + quite_sort(bigger_nums)
print(quite_sort([15, 77, 44, 1545, 4, 44, 11, 55, 9.9, 74, 33, 22, 66, -1, -66]))
def sort_3(list_nums):
if len(list_nums) < 2:
return list_nums
else:
norm_num = list_nums[int(len(list_nums) / 2)] # 取中间列表值作为比较标准
bigger_nums = []
small_nums = []
list_nums.pop(int(len(list_nums) / 2))
for i in list_nums[:]:
if norm_num < i:
bigger_nums.append(i)
else:
small_nums.append(i)
return quite_sort(small_nums) + [norm_num] + quite_sort(bigger_nums)
|
|