全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1447 0
2015-01-08

二话不说上代码:

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


但是发现如果数组中有重复元素,那么排序后会丢失

听取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




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群