Java使用分治算法实现排序数索引功能示例【二分搜索】

网友投稿 204 2023-04-03


Java使用分治算法实现排序数索引功能示例【二分搜索】

本文实例讲述了java使用分治算法实现排序数索引功能。分享给大家供大家参考,具体如下:

/**

* Find the first q and return the index

* First method is brutal force

* Second may

* be Divid and Conquer

*

* @author open201

*

*/

public class Ono {

/**

* f(n) = s.length = n;

*

* @param s

* @param q

* @return

*/

public static int BrutalForceSearch(int[] s, int q) {

for (int i = 0; i < s.length; i++)uMIll {

if (q == s[i])

return i;

}

return -1;

}

/**

* f(n) = log(n)

*

* @param s

* @param q

* @return

*/

public static int DCSearch(int[] s, int q, int startIndex, int endIndex) {

if (startIndex > endIndex)

return -1;

else {

int mid = (startIndex + endIndex) / 2;

if (s[mid] == q)

return mid;

else {

if (s[mid] > q)

return DCSearch(s, q, startIndex,mid-1);

else

return DCSearch(s, q, mid+ 1,endIndex);

}

}

}

public static void main(String[] args) {

inthttp:// [] s = new int[10000000];

for(int i = 0;i<10000000;i++){

s[i] = i;

}

int q = 10000000-1;

long startTime = System.currentTimeMillis();

System.out.println(BrutalForceSearch(s, q));

long endTime = System.currentTimeMillis();

System.out.println(endTime-startTime);

startTime = System.currentTimeMillis();

System.out.println(DCSearch(s, q, 0, s.length - 1));

endTime = System.currentTimeMillis();

System.out.println(endTime-startTime);

}

}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Class 解析器实现方法示例
下一篇:ES6中Array.copyWithin()函数的用法实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~