java基础之数组常用操作总结(必看篇)

  

  

  

假设下标为0的元素是最大值,遍历数组,依次跟麦克斯进行比较,如果有元素比这个马克斯还大,则把这个值赋给马克斯。最小值同样

        公开课TestArray {   公共静态void main (String [] args) {   45234576年int [] arr={23日,34岁的87年,34岁,12日67};   int max=arr [0];   int min=arr [0];   for (int i=0; i      

        进口java.util.Scanner;   公开课TestArray {   公共静态void main (String [] args) {   扫描仪在=新扫描仪(系统);   45234576年int [] arr={23日,34岁的87年,34岁,12日67};   System.out.println(“请输入你要查找的元素”);   int元素=in.nextInt ();   int i,国旗=0;   (i=0; i< arr.length;我+ +){   如果(arr[我]==元素){   标志=1;   打破;   }   }   如果(标志==1){   System.out.println(“你要查找的元素的下标为:" + i);   其他}{   System.out.println(“你要查找的元素不存在”);   }   }   }      

<强>(2),用二分查找法查找数组中是否存在某个元素

  

前提:待查找的数组必须是有序的(大小有序)

  

原理:将待查找的元素与数组中中间下标的元素进行比较,如果大于中间元素,去右边查,找小于中间元素,去左边查找。

        公共静态int binarySearch (int [] arr int避署){   int左=0;   int右=arr.length-1;   int中期;   int指数=1;   而(left<=右){   中期=(左+右)/2;   如果(arr(中期)==避署){   指数=中期;   打破;   }else if (arr[中]& lt;避署){   左=中期+ 1;   }else if (arr(中期)在避署){   正确的=mid-1;   }   }   返回索引;   }      

  

  

原理:相邻元素进行比较,小的往前赶,大的往后冒,最大值出现的最大索引处

  

分析:第一次进行比较,大的往后冒,会把最大值排在最大索引处

  

第二次进行比较,因为最大值已经确定了,只需要比较前n - 1个元素即可,确定一个第二大值排在第二大索引处

  

依次确定第三大值,第四大值.............

  

  

癹ava基础之数组常用操作总结(必看篇)"

        公开课TestArray {   公共静态void main (String [] args) {   int [] arr={10 3 8 - 1,6};//外层循环控制比较轮数   for (int i=0; i      

  

原理:从下标0处开始,依次和后边的元素进行比较,如果后面元素小于下标0的元素,换位。拿新的下标为0的元素和后边的进行比较第。一次完毕,最小值出现在索引0处

  

例:{10 3 8 - 1,6}

  

第一轮比较,从0下标元素开始,依次和后边的元素进行比较,先是10和3进行比较,10 & lt; 3,交换位置,下标0的元素变成3,{3、10、8 1 6};再拿3和8比较,3 & lt; 8日不换位;3和1进行比较,3在1,换位

  

{1、10、8、3、6},然后拿1和6进行比较,1 & lt; 6,不换位置。第一轮结束,{1、10、8、3、6}

  

第二轮比较,上一轮已经确定了下标0的元素为最小值,这轮比较从下标1开始,先是10和8比较,换位{1、8、10、3、6};8和3比较,换位{1、3、10、8、6},3和6比较,不换位。第二轮结束,确定倒数第二小的元素在下标1位置。

  

........   

共比较长度是1轮。

  

癹ava基础之数组常用操作总结(必看篇)"

        公开课TestArray {   公共静态void main (String [] args) {   int [] arr={10 3 8 - 1,6};   for (int i=0; ijava基础之数组常用操作总结(必看篇)