找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 6594|回复: 6

[代码与实例] 20行代码实现快速排序

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2014-11-18 17:13:57 | 显示全部楼层 |阅读模式
20行代码实现快速排序
  1. def quickSort (arr):
  2.     """ Quicksort a list

  3.     :type arr: list
  4.     :param arr: List to sort
  5.     :returns: list -- Sorted list
  6.     """
  7.     if not arr:
  8.         return []
  9.     pivots  = []
  10.     lesser  = []
  11.     greater = []
  12.     for x in arr:
  13.         if x==arr[0]:
  14.            pivots.append(x)
  15.         elif x>arr[0]:
  16.             greater.append(x)
  17.         else:
  18.             lesser.append(x)
  19.     return quickSort(lesser) + pivots + quickSort(greater)

  20. test_array = [1,4,5,7,8,9,90,3,2,3,4]
  21. sorted_array = quickSort (test_array)
  22. print "unsorted:",test_array,"Sorted:",sorted_array
复制代码



回复

使用道具 举报

0

主题

1

帖子

6

积分

贫民

积分
6
深谙 发表于 2014-11-19 22:45:10 | 显示全部楼层
这。。浪费空间啊
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang  楼主| 发表于 2014-11-20 18:55:21 | 显示全部楼层
深谙 发表于 2014-11-19 22:45
这。。浪费空间啊

呃。。。请给一个更高效的吧
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
149720843 发表于 2016-10-3 20:44:41 来自手机 | 显示全部楼层
test_array = [1,4,5,7,8,9,90,3,2,3,4]             print test_array.sort()
回复 支持 反对

使用道具 举报

1

主题

3

帖子

3

积分

贫民

积分
3
mou.. 发表于 2016-11-15 15:47:16 | 显示全部楼层
test_array = [1,4,5,7,8,9,90,3,2,3,4]             print(sorted(test_array))
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang  楼主| 发表于 2016-11-16 20:53:57 | 显示全部楼层
mou.. 发表于 2016-11-15 15:47
test_array = [1,4,5,7,8,9,90,3,2,3,4]             print(sorted(test_array))

你这个肯定更快,因为你使用的内置函数, 我们的目的是构建算法
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
bangbangbing 发表于 2017-1-3 11:18:59 | 显示全部楼层
有点像二分法排,确实有点浪费空间。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表