JAVA 数组、排序 day5
来源:互联网 发布:淘宝企业店铺注册资金 编辑:程序博客网 时间:2024/05/16 14:07
1.数组:
如果遍历数组中的数据: 通过数组名.length 获取数组的长度,再使用for循环遍历即可
2.
Java 对内存空间的划分:五部分
1>栈区
2>堆区
3>方法区
4>本地方法区
5>寄存器
2.1.栈内存:栈内存主要是用来运行函数的,在函数中定义的所有变量,都会在这个内存开辟空间。
在栈内存中定义的变量,不初始化,是不能直接使用的。(即,函数必须要有初始值,才能被调用)
注意:所有的函数都必须在栈内存中运行。
2.2. 堆内存:在程序中使用new 关键字创建出来的所有东西,都会保存在堆内存中。即(堆内存中开辟的空间,不赋值,都会有默认的初始化数据)。
2.3.方法区:JVM(Java虚拟机)在加载class文件的时候,所有的class文件就要加载在这个内存中。
4.本地方法区:主要是保存native关键字标注的方法
5.寄存器:是给CPU使用的。
§ 如果函数的形参是一个数组,那么在传递的时候,实参也必须要是一个数组.
如果函数的形参是一个数组, 那么实参数组的类型也要和形参数组的类型一致
4. 关于值传递与引用传递的区别 :
1. 数值传递称为值传递,仅仅是将数值拷贝了一份,(副本) 在函数内部修改数值对源数据不会有任何影响.
2. 引用传递,表示访问这个地址指向空间的值,直接对源数据进行操作.
5.求数组最值:
定义一个数组;将数组的最大或者最小值的初始值设为数组的第一个元素;进行循环比较,若max<arr[i],输出最大值,若min>arr[i],输出最小值
6.排序:
6.1 查表法:数组空间中的值和数组的下标一一对应。
如:定义一个数组存放星期,根据输入的数组下标值对应星期。代码实现:可设定一个函数调用,在函数内部对输入的下标做判断。
6.2 数组转字符串输出:在主函数中定义个数组,定义一个变量用来存放函数的返回值。在函数内部实现转字符串的功能,定义一个for循环,对数组元素进行遍历,并以字符串的 形式进行输出。如果是字符串反向输出,for循环的条件应为i=arr.length;i>=0;i--
6.3 选择排序:
选择排序思路:
i j = i + 1
第0轮 拿到0 与 1~最后一个元素进行比较
第1轮 拿到1 与 2~最后一个元素进行比较
第2轮 拿到2 与 3~最后一个元素进行比较
第3轮 拿到3 与 4~最后一个元素进行比较
第4轮 拿到4 与 5~最后一个元素进行比较
......
第i轮 拿到i 与 i+1 ~ 最后一个元素进行比较
代码实现:定义一个数组;定义一个函数,将数组以字符串的形式输出;定义一个函数,对数组进行排序,外层循环:fo(int i=0;i<arr.length-1;i++),内层循环:for(int j=i+1;j<arr.length;j++),添加if判断两个数值的大小,如果arr[i]<arr[j],则交换位置
6.3 冒泡排序:
基本思想:每次比较两个相邻的元素,如果它们的顺序错误,就把它们交换过来.
对比方式:
0--1; 1--2; 2--3; 3--4;
0--1; 1--2; 2--3;
0--1; 1--2;
0--1;
代码实现:
1. for(int i =0; i < array.length -1; i++)
2. {
3. for(int j =0; j < array.length -1- i; j++)
4. {
5. if(array[j]> array[j+1])
6. {
7. int temp = array[j];
8. array[j]= array[j+1];
9. array[j+1]= temp;
10. }
11. }
12. }
7.查找元素
7.1 无序查找: 逐一遍历,进行元素的对比
代码实现:定义一个数组,在主函数中定义变量存储函数的返回值,int result=searchKey(arr,3),查找arr数组中的元素3,函数searchKey(int[] arr,int key),在for循环中添加if判断(arr[i]==key)
7.2 折半查找
代码实现:定义两个变量,用来表示最小和最大查找下标;
while (min <= max)
{
int mid = (min + max) / / int mid = (min + max) >> 1;
if (array[mid] > key) // 如果中间值大于key,就往左边找 (大了)
{
max = mid - 1;
}
else if (array[mid] < key) // 如果中间值小于key,就往右边找 (小了)
{
min = mid + 1;
}
else // 相等就是找到了,直接返回
{
return mid;
}
- JAVA 数组、排序 day5
- JAVA-DAY5
- java day5
- Java day5
- day5: 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- java学习笔记day5
- Java学习 day5
- java学习day5
- day5 JAVA 高级特性
- Java学习--day5
- Java学习day5
- Java基础补习Day5
- day5-java&oracle总结
- Java面试题Day5
- day5
- day5
- day5
- Day5
- Java 冒泡排序
- Sitemesh 3 的使用及配置
- C#循环删除List中某个元素
- Python 程序员都会喜欢的 6 个库
- 利用Python从文件中读取字符串(解决乱码问题)
- JAVA 数组、排序 day5
- 手机浏览器与我的那些事(三)
- Swift3.0视频教程
- 【Excel】vs2015利用mfc读excel时的类型
- 操作系统页面调度算法
- Linux学习——磁盘管理、用户管理、权限管理命令
- “gjw” is of a model that is not supported by this version of Xcode. Please use a different device.
- Controller相关
- SpringMVC企业开发实战