在python中对于列中的数据的排序、去重等操作都有已经封装的很好的内置函数了,效率也是不错的,今天使用内置函数和桶排序的方法来实现对输入的随机数数组进行排序输出,问题很简单,做法也很简单,如果想要看桶排序的思想和实现可以看我之前的博文,有几乎所有常用的排序算法的实现,当然这些也都是面试的时候几乎都会问几句的东西,好了具体实现如下:
#!usr/bin/env python#encoding:utf-8 '''__Author__:Python之眼功能:输入:多行数据,第一行为总输入行数接下来为每行数字 输出:经过排序去重后分行输出的数据''' 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()
结果如下:
10125679452312455634791223344556**************************************************************************************************152356893412589534124556673458912233445566789
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。