假设下标为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个元素即可,确定一个第二大值排在第二大索引处
依次确定第三大值,第四大值.............
公开课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轮。
公开课TestArray { 公共静态void main (String [] args) { int [] arr={10 3 8 - 1,6}; for (int i=0; ijava基础之数组常用操作总结(必看篇)