在python中对于列中的数据的排序、去重等操作都有已经封装的很好的内置函数了,效率也是不错的,今天使用内置函数和桶排序的方法来实现对输入的随机数数组进行排序输出,问题很简单,做法也很简单,如果想要看桶排序的思想和实现可以看我之前的博文,有几乎所有常用的排序算法的实现,当然这些也都是面试的时候几乎都会问几句的东西,好了具体实现如下:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:输入:多行数据,第一行为总输入行数接下来为每行数字
输出:经过排序去重后分行输出的数据
'''
def func_test1():
'''
最基础的做法,但是疑惑的是在newcoder上从来都是通过率为0
'''
n=int(raw_input())
num_list=[]
new_list=[]
for i in range(n):
num_list.append(int(raw_input()))
new_list=sorted(list(set(num_list)))
for one in new_list:
print one
def func_test2():
'''
借鉴桶排序的思想,空间换时间,效率很高
'''
n=int(raw_input())
num_list=[0]*1001
out_list=[]
for i in range(n):
one_num=int(raw_input())
num_list[one_num]=one_num
for one in num_list:
if one:
print one
if __name__ == '__main__':
func_test1()
print '**************************************************************************************************'
func_test2()
结果如下:
10
12
56
7
9
45
23
12
45
56
34
7
9
12
23
34
45
56
**************************************************************************************************
15
23
56
89
34
12
5
8
9
5
34
12
45
56
67
34
5
8
9
12
23
34
45
56
67
89