• 快速排序


    一、通过JavaScript实现

    1.1思路

    1.2实现

    二、通过Java实现

    2.1思路

    2.2实现

    三、通过Python实现

    3.1思路

    通过二分法递归进行排序

    a.选择一个基准值(中值)

    b.声明两个列表,分别存储小于基准值和大于基准值的元素

    c.递归上面步骤

    d.直到长度为一,将两个列表和基准值拼接成[list]列表返回

    3.2实现

    # -*- encode: utf-8 -*-
    
    import numpy as np
    
    
    def quick_sort(_array):
        """
        快速排序, 通过二分法实现
        :param _array: 可转换为列表的数据类型
        :return: 已排序的列表
        """
        _array = list(_array)  # 类型转换
        if len(_array) >= 2:  # 列表判断长度是否>=2,是则进行排序操作;否则返回列表
            middle = _array[len(_array) // 2]  # 设置基准值
            left, right = list(), list()  # 定义基准值左右两边的[list]列表
            _array.remove(middle)  # 将基准值从源列表中移除
            for item in _array:  # 遍历每一项元素, 将其添加到对应的列表中
                if item >= middle:
                    right.append(item)
                else:
                    left.append(item)
            # 递归结果
            return quick_sort(left) + [middle] + quick_sort(right)
        else:
            return _array
    
    
    if __name__ == '__main__':
        array = np.random.randint(0, 100, 10)  # [17 20 21 45 64 33 13 32 81 36]
        sort = quick_sort(array)  # [13, 17, 20, 21, 32, 33, 36, 45, 64, 81]
    
  • 相关阅读:
    linux ubuntu 指令
    java tomcat linux 环境变量设置
    ubuntu 窗口操作快捷键
    vim 常用命令
    ubuntu 语言设置
    SQL用户存在则更新不存在则插入
    下载组件Jspsmartupload中文乱码解决办法
    ExtJS学习
    JSP 通过Session和Cookie实现网站自动登录
    SpringMVC XXX-servlet.xml ApplicationContext.xml
  • 原文地址:https://www.cnblogs.com/langkyeSir/p/13287142.html
Copyright © 2020-2023  润新知