您的位置:首页 > 其它

二分搜索

2007-12-25 17:21 218 查看
算法描述:

遍历有序数组查找目标。

始终将数组A的n个元素分成个数基本相同的两部分,取a【n/2】与x比较,若相等则终止;若“<”则在数组左半部看作数组A搜索x;若“>”则在数组右半部看作数组A搜索x。

代码:

[align=left] /**[/align]
[align=left] *binarySearch[/align]
[align=left] *@paramArray[/align]
[align=left] *@paramX[/align]
[align=left] *@return[/align]
[align=left] */[/align]
[align=left] public int binarySearch (int [] Array, int X) {[/align]
[align=left] [/align]
[align=left] int left = 0;[/align]
[align=left] int right = Array.length -1;[/align]
[align=left] [/align]
[align=left] while (right >= left) {[/align]
[align=left] [/align]
[align=left] int middle = (right + left) / 2;[/align]
[align=left] [/align]
[align=left] if (X == Array [middle]) {[/align]
[align=left] return middle;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] if (X > Array [middle]) {[/align]
[align=left] left = middle + 1 ;[/align]
[align=left] } else {[/align]
[align=left] right = middle - 1;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return -1;[/align]
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: