数值型数组特征值统计
这里特征值涉及到:平均值,最大值,最小值,总和等
求最大值:将数组第一个元素假设为最大值 int max= arr[0];再然后用写一个判断语句如果数组第一个 元素小于当前比较的元素就把当前比较的元素赋值给max if(max<arr[i]){max = arr[i]}
求最小值:定义一个变量这个数大于数组里的所有元素例:数组范围是0-99 那么定义的数就为100 然后写一个判断语句if(min>arr[i]){min=arr[i]}如果min大于arr[i]遍历数组中的元素就把小于的这个数赋值给min ,那么min的值会不断变化例第一次比较100>50 那么min就是50了 下一次比较50>30 那么min下次就变成30了以此类推;
.数组元素的赋值(实际开发中,遇到的场景比较多)
数组的复制
数组的翻转
数组的常见算法2
1.数组的扩容与缩容
2.数组元素的查找
顺序查找
优点
缺点
二分查找
优点
缺点
数组的排序
排序算法的衡量标准
排序的分类
内部排序的具体算法
我们需要关注的几个排序算法
数组在计算机中的执行原理
在j计算机中程序都是通过内存来执行的,那在java中在编译之后会产生class文件是提取到内存中正在运行的jvm虚拟机来执行的
java为了便于虚拟机执行java程序他将虚拟机内存区域进行了划分大概划分 方法区 栈 堆 本地方法栈 寄存器 重点关注前三个内存区域 接下来讲讲如何配合三块区域来执行java程序的
首先是方法区 存放编译以后字节码文件先加载这里 还有一个区域叫栈方法运行时所进入的内存由于变量是在main方法里面的那也就是说要执行main方法那就是把main方法提取到栈里面来进行执行的,其次是堆 堆中用来存放new出来的东西会在这块堆内存中开辟空间并产生地址
这个空间可以比喻成家里的卫生间 厨房 客厅 每块空间都有自己的功能 首先会将编译好的class文件提取到方法区里接下来就会将方法区里的方法加载到栈内存空间去 然后会执行main方法里的第一行代码 int a = 10 那么就会先定义一个变量然后在栈里面开辟一个空间也就是在main方法里开辟空间 这里面就会存储数据10 接下看来执行下一行代码system.out.println(a),这行代码是直接输出变量a他就会直接打印出变量a,接下来继续执行下面的代码int[]arr = {11,22,33};这时候会先在main方法里开辟arr变量空间一开始这个变量并没有存数据接着他会执行等号右边的代码这个代码其实是在new一个数组对象我们说过只要new的话就在堆内存开辟空间这块区域会等分成三块 第一块区域存11 第二块区域存22 第三块区域存33 这三块区域都会有自己的索引依次分别问0.1.2 并且也会有一个地址接着他会把这个地址赋值给左边的变量arr再由arr来指向右边的数组对象这就是我们数组引用类型的变量他的执行原理再往下执行代码
system.out.println(arr),arr存的是什么啊,他存储的是不是地址啊,接着代码继续执行system.out.println(arr[1]),他在通过arr这个变量可以找到右边的数组对象再通过这个地方申请的索引1定位到第二个位置 他就会把第二个位置值22取出来打印给我们看,接着代码继续往下走arr[0]= 44arr[1]=55arr[2]=66 ,他会通过arr变量的地址找到右边的数组对象再找到第一个位置改成44通过索引1找到第二个索引改成55通过索引2找到第三个位置改成66,接着在执行下边代码system.out.println(arr[0])system.out.println(arr[1])system.out.println(arr[2]),他再次通过arr变量里的地址找到右边的数组对象,索引1找到的是44,索引2找到的是55,索引3找到的是66