聘我网

新概念招聘3.0

算法:快速查找整数数组中是否有某个数是另一个的平方

vote up0vote downstar

如果对其中的每个树进行查找其平方值是否在数组中,则需要O(n^2)的复杂度,但是有更巧妙的算法来实现O(n)

  1. 建立一个新数组,大小为两倍原数组,O(n)
  2. 将原数组及平方值放入新数组,O(n)
  3. 对新数组进行基数排序(radix sort),O(n)
  4. 遍历新数组,查看是否有连续的两个数相等,O(n)

这个算法的亮点在于基数排序这篇博客的介绍挺详细,其应用前提是必须保证每个值能够以固定位数(k)表示,其复杂度为O(kn),当k固定时也就是O(n)

 

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.