资源描述:
《Java中常用的查找方法——顺序查找和二分查找》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、神话丿小王子的百度文库Java中常用的查找算法——顺序查找和二分查找一、顺序查找:a)原理:顺序查找就是按顺序从头到尾依次往下查找,找到数据,则提前结束查找,找不到便一直查找下去,直到数据最后一位。b)图例说明:原始数据:int[]a={4,6,2,8,1,9,0,3};要查找数字:8代码演示:importjava.util.Scanner;/**顺序查找*/publicclassSequelSearch{publicstaticvoidmain(String[]arg){int[]a={4,6,2,8,1,9,0,3};Scannerinput=new
2、Scanner(System.in);System.out.println("请输入你要查找的数:");//存放控制台输入的语句intnum=input.nextInt();//调用searc()方法,将返回值保存在result中intresult=search(a,num);if(result==-1){程序虐我千百遍,我待程序如初恋神话丿小王子的百度文库System.out.println("你输入的数不存在与数组中。");}elseSystem.out.println("你输入的数字存在,在数组中的位置是第:"+(result+1)+"个");}p
3、ublicstaticintsearch(int[]a,intnum){for(inti=0;i4、间点位置值小于待查值,则新的查找区间是中间点位置的右边区域。下一次查找是针对新的查找区间进行的。程序虐我千百遍,我待程序如初恋神话丿小王子的百度文库a)图例说明:原始数据:int[]a={5,3,6,1,9,8,2,4,7};查找是否存在数字8;第一步,先用之前学过的排序方法将数组按升序排序:int[]a={1,2,3,4,5,6,7,8,9};第二步,取中间数:5跟8比较,8大于5,取中间数右侧的数组进行比较,即{6,7,8,9}第三步:重复第一步和第二步,直到找到数据或者比较完所有数据。b)代码示例:importjava.util.Scanner;/
5、**二分查找*/publicclassBinarySearch{publicstaticvoidmain(String[]args){int[]arr={5,3,6,1,9,8,2,4,7};//先打印输出原始数组数据System.out.println("原始数组数据如下:");for(intn:arr){System.out.print(n+"");}System.out.println();//首先对数组进行排序,这里用冒泡排序for(inti=0;i6、+){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}程序虐我千百遍,我待程序如初恋神话丿小王子的百度文库}}//遍历输出排序好的数组System.out.println("经过冒泡排序后的数组:");for(intn:arr){System.out.print(n+"");}System.out.println();//换行Scannerinput=newScanner(System.in);System.out.println("请输入你要查找的数:");intnum
7、=input.nextInt();intresult=binarySearch(arr,num);if(result==-1){System.out.println("你要查找的数不存在……");}else{System.out.println("你要查找的数存在,在数组中的位置是:"+result);}}//二分查找算法publicstaticintbinarySearch(int[]arr,intnum){intlow=0;//数组第一位数intupper=arr.length-1;//数组最后一位数while(low<=upper){//循环条件i
8、ntmid=(upper+low)/2;if(arr[mid]