快速排序
Posted langkyesir
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序相关的知识,希望对你有一定的参考价值。
一、通过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]
以上是关于快速排序的主要内容,如果未能解决你的问题,请参考以下文章