欢迎来到天天文库
浏览记录
ID:44715569
大小:20.77 KB
页数:4页
时间:2019-10-25
《数组的三种排序方式和查找方式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数组的三种排序方式和查找方式数组的查找方式第一种(最简单)普通查找:实现功能原理:获取key第一次出现在数组中的位置。如果返回是-1,那么代表该key在数组中不存在,这种查找是从头到后查找。代码如下:publicclassSearchTest{publicstaticintsearch(int[]a,intkey){for(inti=0;i2、search(a,value);System.out.println(index);}}第二种二分查找(BinarySearch,折半查找):二分查找可以提高效率,但实现二分查找的条件是该数组必须是有序的数组。publicclassBinarySeachTest{publicstaticintbinarySearch(int[]a,intvalue){intlow=0;inthigh=a.length-1;intmiddle;while(low<=high){middle=(low+high)/2;for(inti=0;i3、i]);if(i==middle){System.out.print("#");}System.out.print("");}System.out.println();if(a[middle]==value){returnmiddle;}if(valuea[middle]){low=middle+1;}}return-1;}publicstaticvoidmain(String[]args){int[]i={1,2,3,4,5,6,7,8,9,12};intvalue=2;intindex=binarySearch(i4、,value);System.out.println(index);}}数组排序选择排序:原理:第一个和第二个,第三个等元素比,确定了最小值(最大值),再拿第二个和后面元素挨个比。一直到最后,最后一个不用比;所以就是arr[].length-1第一轮比完之后,开始第二轮就不考虑前面已经放好的元素。所以,代码如下:publicclassArraySort{publicstaticvoidsort(int[]a){for(inti=0;ia[j]){inttemp=a[i];a[i]=a5、[j];a[j]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={2,7,4,8,3,9,5};sort(arr);for(inti=0;i6、){//-x;是让每一次的比较元素减少-1:避免索引越界if(a[j]>a[j+1]){inttemp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={5,2,7,3,6,8,4,1};bundleSort(arr);for(inti=0;i7、aticvoidmain(String[]args){intarray[]={3,7,1,6,5,2,4,8,9};Arrays.sort(array);for(inti=0;i
2、search(a,value);System.out.println(index);}}第二种二分查找(BinarySearch,折半查找):二分查找可以提高效率,但实现二分查找的条件是该数组必须是有序的数组。publicclassBinarySeachTest{publicstaticintbinarySearch(int[]a,intvalue){intlow=0;inthigh=a.length-1;intmiddle;while(low<=high){middle=(low+high)/2;for(inti=0;i3、i]);if(i==middle){System.out.print("#");}System.out.print("");}System.out.println();if(a[middle]==value){returnmiddle;}if(valuea[middle]){low=middle+1;}}return-1;}publicstaticvoidmain(String[]args){int[]i={1,2,3,4,5,6,7,8,9,12};intvalue=2;intindex=binarySearch(i4、,value);System.out.println(index);}}数组排序选择排序:原理:第一个和第二个,第三个等元素比,确定了最小值(最大值),再拿第二个和后面元素挨个比。一直到最后,最后一个不用比;所以就是arr[].length-1第一轮比完之后,开始第二轮就不考虑前面已经放好的元素。所以,代码如下:publicclassArraySort{publicstaticvoidsort(int[]a){for(inti=0;ia[j]){inttemp=a[i];a[i]=a5、[j];a[j]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={2,7,4,8,3,9,5};sort(arr);for(inti=0;i6、){//-x;是让每一次的比较元素减少-1:避免索引越界if(a[j]>a[j+1]){inttemp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={5,2,7,3,6,8,4,1};bundleSort(arr);for(inti=0;i7、aticvoidmain(String[]args){intarray[]={3,7,1,6,5,2,4,8,9};Arrays.sort(array);for(inti=0;i
3、i]);if(i==middle){System.out.print("#");}System.out.print("");}System.out.println();if(a[middle]==value){returnmiddle;}if(valuea[middle]){low=middle+1;}}return-1;}publicstaticvoidmain(String[]args){int[]i={1,2,3,4,5,6,7,8,9,12};intvalue=2;intindex=binarySearch(i
4、,value);System.out.println(index);}}数组排序选择排序:原理:第一个和第二个,第三个等元素比,确定了最小值(最大值),再拿第二个和后面元素挨个比。一直到最后,最后一个不用比;所以就是arr[].length-1第一轮比完之后,开始第二轮就不考虑前面已经放好的元素。所以,代码如下:publicclassArraySort{publicstaticvoidsort(int[]a){for(inti=0;ia[j]){inttemp=a[i];a[i]=a
5、[j];a[j]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={2,7,4,8,3,9,5};sort(arr);for(inti=0;i6、){//-x;是让每一次的比较元素减少-1:避免索引越界if(a[j]>a[j+1]){inttemp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={5,2,7,3,6,8,4,1};bundleSort(arr);for(inti=0;i7、aticvoidmain(String[]args){intarray[]={3,7,1,6,5,2,4,8,9};Arrays.sort(array);for(inti=0;i
6、){//-x;是让每一次的比较元素减少-1:避免索引越界if(a[j]>a[j+1]){inttemp=a[j];a[j]=a[j+1];a[j+1]=temp;}}}}publicstaticvoidmain(String[]args){intarr[]={5,2,7,3,6,8,4,1};bundleSort(arr);for(inti=0;i7、aticvoidmain(String[]args){intarray[]={3,7,1,6,5,2,4,8,9};Arrays.sort(array);for(inti=0;i
7、aticvoidmain(String[]args){intarray[]={3,7,1,6,5,2,4,8,9};Arrays.sort(array);for(inti=0;i
此文档下载收益归作者所有