private int recfind(long searchkeyint lowerboundint upperboundint curincurin (lowerbound upperbound if( [curin]==searchkeyreturn curin/found it else if(lowerbound upperboundreturn nelems/can' find it else /divide range if( [curinsearchkey/it' in upper half return recfind(searchkeycurin+ upperbound)else /it' in lower half return recfind(searchkeylowerboundcurin- )/end else divide range /end recfind(the class userrepresented by main()may not know how many items are in the array when it calls find()and in any case shouldn' be burdened with having to know what values of upperbound and lowerbound to set initially thereforewe supply an intermediate public methodfind()which main(calls with only one argumentthe value of the search key the find(method supplies the proper initial values of lowerbound and upperbound ( and nelems- and then calls the privaterecursive method recfind(the find(method looks like thispublic int find(long searchkeyreturn recfind(searchkey nelems- )listing shows the complete listing for the binarysearch java program listing the binarysearch java program /binarysearch java /demonstrates recursive binary search /to run this programc>java binarysearchapp ///////////////////////////////////////////////////////////////class ordarray private long[ /ref to array