首页 > 编程知识 正文

数组二分查找法应用的前提是,java冒泡排序经典代码

时间:2023-05-03 20:10:39 阅读:128902 作者:147

1 .气泡排序是对无序数组进行排序的方法,参数为无序数组、返回有序数组。

外部的for循环按值进行内部的for循环,

内部for循环将最大值放置在数组的末尾

公共静态int [ ] DCD FH (int [ ] arr ) ) for ) intj=0; jarr.length; j ) (/for ) intI=0; iarr.length-1; I () if ) arr[I]arr[I1] ) { int da=arr[i]; int xiao=arr[i 1]; arr[i]=xiao; arr[i 1]=da; }else { continue; } }返回arr; } 2.递归方法实现二分查找法1 .二分查找输入查找值,返回查找值数组下标(查找的数组arr、数组开头start、数组结尾end、查找的值key )

首先,判断输入的start (开头)是否大于end,大于end时返回-1

2 .在上述较大范围内,如果第一个判断arr[mid] (开头值、结尾值和中间数组值) ),然后与key )要找的值)的数组相同,则mid )返回并结束

3 .如果以上不成立,则判断arr[mid] (中间数组的值)是否小于应该搜索的值,如果小于,则表示key )在数组的右侧,对mid附加新的开始值newstart,递归地将start的值作为newstart

4 .在以上都不成立的情况下,因为只剩下arr[mid]key,所以key (检索到的值)在数组的左边,对mid附加值并赋予新的结束值newend,递归地将end的值变为newend

publicinterfenchazhao(int[]arr,int start,int end,int key ) if(startend )//如果输入的数组开头大于结尾,则结束,返回负} else { int mid=(结束-开始)/2; //新的中间值midif(ARR[mid]==key )//中间值与查找值相同({返回mid; }elseif(ARR[mid]key ) /中间值小于查找值,查找值在其右侧,舍弃数组的左边,中间值变为新的起始值,递归返回中间值mid直到查找与中间值相等。 {int newstart=mid; returnerfenchazhao(ARR,newstart,end,key ); }else //中间值大于查找值,查找值在其左侧,舍弃数组的右侧,中间值变为新的结束值,递归地返回中间值mid,直到查找与中间值相等。 {int newend=mid; returnerfenchazhao(ARR,start,newend,key ); }}3主方法包括: publicstaticvoidmain (字符串[ ] args (intarr ) )={ 6、9、2、10、18、27、48、1、44 }; dcdfhpao m=new dcdfhpao (; inthouarr[]=m.DCDFH(arr ); for(intI:houarr ) System.out.print(i ) I ' ); //排序后,输出有序数组System.out.println (; Test1 test1=new Test1 (; system.out.println (test1.erfenchazhao (Hou arr,0,Hou arr.length-1,10 ) ); //输出查找值下标值}最终结果:查找10返回数组值为10的下标值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。