A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 离地球最近的星 初级黑马   /  2019-3-31 17:44  /  1088 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

# 我只是一个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)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马