快速排序 python实现

    技术2023-11-27  80

    快速排序思路主要为:一列数,选中一个key(以下为第一个数),比key小的放左边,比key大的放右边。key放在一个列表。 左边的继续选key,小的放左边,大的放右边;右边相同。以此形成递归 代码实现 #快速排序 #把最后数作为关键key def quick_sort(a): if len(a)<=1: return a elif len(a)>1: left = [] right = [] mindlist = [] key=a[0] print("key:",key) for x in a: if x<key: left.append(x) print("left:",left) elif x>key: right.append(x) print("right",right) else: mindlist.append(key) print("mindlist:",mindlist) left=quick_sort(left) right=quick_sort(right) mindlist=quick_sort(mindlist) return left+mindlist+right list = [2, 1, 5, 7.9, 13, 3, 6] print(quick_sort(list) )

     

    运行结果:

    key: 2 mindlist: [2] left: [1] right [5] right [5, 7.9] right [5, 7.9, 13] right [5, 7.9, 13, 3] right [5, 7.9, 13, 3, 6] key: 5 mindlist: [5] right [7.9] right [7.9, 13] left: [3] right [7.9, 13, 6] key: 7.9 mindlist: [7.9] right [13] left: [6] [1, 2, 3, 5, 6, 7.9, 13]

    快排还有其他的实现思路,后续有有时间继续贴出。

    Processed: 0.011, SQL: 9