每天努力一点点,坚持下去 ------ 博客首页

Python之快排算法

快排算法的思路:

  1. 从list中取出下标为0的值
  2. 定义三个list
  3. 进行循环,大于list[0]放入一个A,小于的放入B,其他的放入C
  4. 拼接:A+C+B

代码实现:

list = [13, 8, 11, 17, 5, 6, 1, 1, 1]

def QuickSort(list):
    if len(list) <= 1:  # 判断如果小于等于1,则无需排序,直接返回即可
        return list
    else:
        key = list[0]  # 获取list中下标为0的值(取值第一个)
        llist, rlist, mlist = [], [], [key]  # 创建三个list
        for i in range(1, len(list)):  # 因已经定义了key,随意从1取值
            if list[i] < key:  # 小于key放在一起
                llist.append(list[i])
            elif list[i] > key:  # 大于key放在一起
                rlist.append(list[i])
            else:  # 其他的放在一起
                mlist.append(list[i])
    return QuickSort(llist) + mlist + QuickSort(rlist)  # 进行拼接

结果:

[1, 1, 1, 5, 6, 8, 11, 13, 17]

 

 


 

posted @ 2024-05-21 10:14  他还在坚持嘛  阅读(15)  评论(0编辑  收藏  举报