原代码+矫正代码
1、原代码
Scala:
- def quickSort(xs: List[Int]): List[Int] = { if (xs.isEmpty) xs
- else
- quickSort(xs.filter(x=>x<xs.head)):::xs.head::quickSort(xs.filter(x=>x>xs.head)) }
Python:
- def quick_Sort(a): if len(a) != 0:
- leftSide = quick_Sort(filter(lambda x:x<a[0],a))
- middle = [a[0]]
- rightSide= quick_Sort(filter(lambda x:x>a[0],a))
- return leftSide+middle+rightSide
- else:
- return a
2、矫正代码
但是发现如果数组中有重复元素,那么排序后会丢失
听取MercedesLv的意见后做如下修改:
Scala:
- def quickSort(xs: List[Int]): List[Int] = {
- if (xs.isEmpty) xs
- else
- quickSort(xs.drop(1).filter(x=>x<=xs.head)):::xs.head::quickSort(xs.filter(x=>x>xs.head)) }
Python:
- def quick_Sort(a):
- if len(a) != 0:
- leftSide = quick_Sort(filter(lambda x:x<=a[0],a[1:]))
- middle = [a[0]]
- rightSide= quick_Sort(filter(lambda x:x>a[0],a))
- return leftSide+middle+rightSide
- else:
- return a



雷达卡




京公网安备 11010802022788号







