百万级数据内取得最大的N到N+10条数据

近日碰到一个问题,在一百万的数据内查找最大的数据的第N到第N+10,立即想到的就是冒泡排序冒泡排序、快速排序等诸多的排序算法,,但是直觉告诉我似乎这个题目并非只是算法能够解决的问题,一百万的数据用算法排序一般是及其浪费资源的,尤其是诸如冒泡类的算法,虽然算法简单,但是及其浪费资源

  常见算法的时间复杂度

  

  最后分析题目只是需要最大的N到N+10条数据,那么好只需要将N+10条数据进行排序,保证N+10条数据是最大的即可,这样分析题目后就很简单了,只是需要N+10条排序的数据,那么这个算法就很好简单了,只需要将全部数据内随机的拿到N+10条数据然后将剩下的全部数据逐个与这N+10条数据进行比较,即可拿到最大的N+10条数据,然后对N+10条数据进行排序算法算法复杂度和时间复杂度相比较其他之间将全部数据排序的算法要节省很多

  时间复杂度将近等于Ο(n)

  小结:遇到问题首先想到各种算法是一个程序员的本能反应,但是应该弄懂题目,读懂题目,确认需求并且分析需求寻找一个最佳解决的途径或方法!
posted on 2011-02-28 22:55  高成  阅读(774)  评论(3编辑  收藏  举报