java¶þ·Ö²éÕÒ
¶þ·Ö²éÕÒ£º
¶þ·Ö²éÕÒ±ÈÏßÐÔ²éÕÒÊý¶ÈÒªºÃºÜ¶à£¬ÓÈÆäÊǶԴóÊý×éÀ´Ëµ¸üΪÏÔÖø£¬¾ÍÏñÊDzÂ×ÖÓÎÏ·Ò»Ñù
²Â×ÖÓÎÏ·£º
¶þ·Ö²éÕҵķ½·¨ºÍÎÒÃÇСʱºòÍæµÄ²Â×ÖÓÎÏ·ÊÇÒ»ÑùµÄ¡£ÔÚÕâ¸öÓÎÏ·ÀïÃ棬ÓÐÒ»¸öСÅóÓÑ»áÈÃÄã²ÂËýÕýÔÚÏëµÄÒ»¸ö1ÖÁ100Ö®¼äµÄÊý£¬
Äã²ÂÁËÒ»¸öÊýÒÔºó£¬Ëý»á¸æËßÄãÈýÖÖÑ¡ÔñÖеÄÒ»¸ö£ºÄã²ÂµÄ±ÈËýÏëµÄС£¬»òÕß´óÁË£¬»òÕ߲¶ÔÁË¡£
ΪÁËÄÜÓÃ×îÉٵĴÎÊý¿ªÊ¼²Â¶Ô£¬±ØÐë´Ó50¿ªÊ¼²Â£¬Èç¹ûËý˵Äã²ÂµÄ̫С£¬ÔòÍƳöÄǸöÊéÔÚ51ÖÁ100Ö®¼ä£¬ËùÒÔÏÂÒ»´Î²ÂµÄÊÇ75£¨51ÖÁ100µÄÒ»°ã£©¡£Èç¹ûËý˵Äã²ÂµÃÓеã´óÁË£¬ÔòÊýÔÚ£¨1-49£©Ö®¼ä£¬ËùÒÔÏÂÒ»´Î²Â25.
ÿһ´Î²Â¶¼»á½«¿ÉÄܵÄÖµ»®·Ö³ÉÁ½²¿·Ö¡£×îºó·¶Î§»áËõСµ½Ò»¸öÊý×ÖÄÇô´ó¡£²»¶à˵¡£¿´³ÌÐò
/**
* @author licheng
* @function ¶þ·Ö²éÕÒ
*
* */
package com.licheng.array;
public class BinarySearch {
/**
* @author licheng
* *¶þ·Ö²éÕÒÌض¨ÕûÊýÔÚÕûÐÍÊý×éÖеÄλÖÃ(µÝ¹é)
* @param dataSet(²éÕÒµÄÊý×é)
* @param data(²éÕÒµÄÊý¾Ý)
* @param beginIndex(¿ªÊ¼Ï±ê)
* @param endIndex(½áÊøϱê)
* @return Êý¾ÝËùÔÚϱê
*
* */
public int binarySearch(int [] dataSet, int data, int beginIndex, int endIndex) {
//Èç¹û²éÕÒµÄÊýÒª±È¿ªÊ¼Ë÷ÒýµÄÊý¾ÝҪС»òÕßÊDZȽáÊøË÷ÒýµÄÊéÒª´ó£¬»òÕß¿ªÊ¼²éÕÒµÄË÷ÒýÖµ´óÓÚ½áÊøµÄË÷ÒýÖµ·µ»Ø-1ûÓв鵽
int minIndex = (beginIndex + endIndex)/2;
if (beginIndex > endIndex || data < dataSet[beginIndex] || data > dataSet[endIndex]) {
return -1;
}
if (data > dataSet[minIndex]) {
return binarySearch(dataSet, data, minIndex+1, endIndex);
} else if (data < dataSet[minIndex]) {
return binarySearch(dataSet, data, beginIndex, minIndex-1);
} else {
return minIndex;
}
}
/**
*¶þ·Ö²éÕÒÌض¨ÕûÊýÔÚÕûÐÍÊý×éÖеÄλÖÃ(·ÇµÝ¹é)
*@param dataset
&
Ïà¹ØÎĵµ£º
³éÏóÀà¾ÍÊDz»ÄÜʹÓÃnew·½·¨½øÐÐʵÀý»¯µÄÀ࣬¼´Ã»ÓоßÌåʵÀý¶ÔÏóµÄÀà¡£³éÏóÀàÓеãÀàËÆ“Ä£°å”µÄ×÷Óã¬Ä¿µÄÊǸù¾ÝÆä¸ñʽÀ´´´½¨ºÍÐÞ¸ÄеÄÀà¡£¶ÔÏó²»ÄÜÓɳéÏóÀàÖ±½Ó´´½¨£¬Ö»¿ÉÒÔͨ¹ý³éÏóÀàÅÉÉú³öеÄ×ÓÀ࣬ÔÙÓÉÆä×ÓÀàÀ´´´½¨¶ÔÏó¡£µ±Ò»¸öÀà±»ÉùÃ÷Ϊ³éÏóÀàʱ£¬ÒªÔÚÕâ¸öÀàÇ°Ãæ¼ÓÉÏÐÞÊηûabstract¡£
&nbs ......
½ñÌì¹Û¿´ÁËÀ¶É½ÀÏʦjava±³ºóµÄÃØÃÜÏà¹ØÊÓƵ£¬·¢ÏÖÒªÏëд³ö¸ßÐÔÄܵijÌÐò£¬Ò»¶¨Òª¶ÔÆäÔËÐÐÔÀíÒÔ¼°ÆäÔËÐл·¾³ÓÐÏ൱³Ì¶ÈµÄÁ˽⡣ÄÇClassLoaderÊÇÏ൱¹Ø¼üµÄÒ»¸ö²¿·Ö¡£
ÏÈ˵ÏÂjava³ÌÐòÔËÐеĻù±¾Á÷³Ì£¬ÏȽ«javaÎļþ±àÒëΪclassÎļþ£¬È»ºóͨ¹ýClassLoader£¨Àà¼ÓÔØÆ÷£©£¬¼ÓÔص½Runtime Data Area£¨ÀàËÆÓÚÄڴ棩ÖÐ ......
ÎÒÃÇÿ¸öѧÆÚÄ©¶¼»á½øÐн«½üÒ»¸öÔµÄʵѵ£¬Õâ´ÎJavaʵѵҲ¼´½«½áÊø£¬ÎÒÑ¡µÄ¿ÎÌâÊÇ“¸öÈËÍøÉÏÒøÐÐϵͳ”£¬ÔËÓÃÁËStruts£¬HibernateºÍSpring¿ò¼Ü£¬Í¨¹ýmvcÉè¼Æģʽ¡£»ù±¾ËùÓеŦÄܶ¼ÊµÏÖÁË£¬ÔÚʵѵÖÐÕæµÄѧµ½Á˺ܶà֪ʶ£¬Ö®¼äÒ²Óöµ½Á˺ܶàÎÊÌ⣬µ«¶¼Ò»Ò»µÃµ½½â¾ö¡£ÎÒ½øÒ»²½Á˽âÁËStrutsµÄÔËÐÐÔÀí£¬ÂíÉÏÃæÁÙ ......
Ò»¡¢Ê²Ã´ÊÇ·´É䣺
·´ÉäµÄ¸ÅÄîÊÇÓÉSmithÔÚ1982ÄêÊ×´ÎÌá³öµÄ£¬Ö÷ÒªÊÇÖ¸³ÌÐò¿ÉÒÔ·ÃÎÊ¡¢¼ì²âºÍÐÞ¸ÄËü±¾Éí״̬»òÐÐΪµÄÒ»ÖÖÄÜÁ¦¡£ÕâÒ»¸ÅÄîµÄÌá³öºÜ¿ìÒý·¢Á˼ÆËã»ú¿ÆѧÁìÓò¹ØÓÚÓ¦Ó÷´ÉäÐÔµÄÑо¿¡£ËüÊ×Ïȱ»³ÌÐòÓïÑÔµÄÉè¼ÆÁìÓòËù²ÉÓÃ,²¢ÔÚLispºÍÃæÏò¶ÔÏó·½ÃæÈ¡µÃÁ˳ɼ¨¡£ÆäÖÐLEAD/LEAD++ ¡¢OpenC++ ¡¢MetaXaºÍOpenJavaµÈ¾ÍÊÇ»ùÓÚ·´ ......
µÚÒ»£¬Ì¸Ì¸final, finally, finalizeµÄÇø±ð¡£
¡¡¡¡µÚ¶þ£¬Anonymous Inner Class (ÄäÃûÄÚ²¿Àà) ÊÇ·ñ¿ÉÒÔextends(¼Ì³Ð)ÆäËüÀ࣬ÊÇ·ñ¿ÉÒÔimplements(ʵÏÖ)interface(½Ó¿Ú)?
¡¡¡¡µÚÈý£¬Static Nested Class ºÍ Inner ClassµÄ²»Í¬£¬ËµµÃÔ½¶àÔ½ºÃ(ÃæÊÔÌâÓеĺÜÁýͳ)¡£
¡¡¡¡µÚËÄ£ ......