黑马程序员_Java基础(下)
来源:互联网 发布:矩阵什么时候可以消去 编辑:程序博客网 时间:2024/05/15 12:24
------- android培训、java培训、期待与您交流! ----------
函数
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者1.明确该功能的运算完的结果,其实是在明确这个函数的返回值类型;2.在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)
函数的重载:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了
重载与返回值类型无关,只看参数列表
函数的功能一样,仅仅是参与运算的未知内容不同时,在调用时,虚拟机通过参数列表的不同来区分同名函数。
示例: int minus(int a,int b){return a-b} //返回两个数的减
int minus(double a,double b,double c)return{ a-b-c} //返回三个数的减
数组
定义:同一种数类型的集合容器。给每一个里面元素从0开始编号,可以通过index对数组中的元素进行操作
两种格式:1.元素类型 [] 数组名 = new 元素类型[元素个数或数组长度] ; int[] arr = new int[4];
2.元素类型[] 数组名 = new 元素类型[]{元素1,元素2,……}; int[] arr = new int[]{1,2,3,4,5,6};
元素类型[] 变量名 = {元素1,元素2...}; int[] arr = {1,2,3,4,5};
内存结构分为5各部分:栈内存、堆内存、方法区、本地方法区、寄存器
栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量);
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。
1:每一个实体都有内存首地址值
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样
3:垃圾回收机制
二维数组:1.int[][] arr = new int[3][2];
给第一个一维数组1脚标位赋值为3写法是:arr[0][1] = 3
2.int[][] arr = new int[3][];
二维数组中有3个一维数组
每个一维数组都是默认初始化值null
arr[0]= new int[3];arr[1] = new int[1];arr[2] = new int[2];
3.int[][] arr = {{3,4,2},{3,7},{9,6}
每一个一维数组中具体元素也都已初始化
arr[0] = {3,4,2}; arr[1] = {3,7}; arr[2] = {9,6};
for循环求数组所有元素的和:
class GetSum {public static void main(String[] args) {// TODO Auto-generated method stubint[] arr={1,2,4,8,9} ; //int[]arr=new int[]{1,2,4,8,9};int sum = 0;for(int i=0;i<arr.length;i++) {sum+=arr[i]; }System.out.println("sum="+sum);}}
数组排序
选择排序:
思想:对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量temp来记住他的位置,接着第二次比较,前面“后一个元素”现变成了“前一个元素”,继续跟他的“后一个元素”进行比较如果后面的元素比他要小则用变量temp记住它在数组中的位置(下标),等到循环结束的时候,我们应该找到了最小的那个数的下标了,然后进行判断,如果这个元素的下标不是第一个元素的下标,就让第一个元素跟他交换一下值,这样就找到整个数组中最小的数了。然后找到数组中第二小的数,让他跟数组中第二个元素交换一下值,以此类推。内循环结束一次,最值出现在头脚标位置
核心代码:
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
{
if(arr[y]<arr[y+1])//思想都一样定义一个临时变量然后调换位置
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
排序法
平均时间
最差情形
稳定度
额外空间
备注
冒泡
O(n2)
O(n2)
稳定
O(1)
n小时较好
交换
O(n2)
O(n2)
不稳定
O(1)
n小时较好
选择
O(n2)
O(n2)
不稳定
O(1)
n小时较好
插入
O(n2)
O(n2)
稳定
O(1)
大部分已排序时较好
基数
O(logRB)
O(logRB)
稳定
O(n)
B是真数(0-9),
R是基数(个十百)
Shell
O(nlogn)
O(ns) 1<s<2
不稳定
O(1)
s是所选分组
快速
O(nlogn)
O(n2)
不稳定
O(nlogn)
n大时较好
归并
O(nlogn)
O(nlogn)
稳定
O(1)
n大时较好
堆
O(nlogn)
O(nlogn)
不稳定
O(1)
n大时较好
折半查找:前提是数组是有序的,提高效率
public static inthalfSeach(int[] arr,int key){
int min,max,mid;
min = 0;
max =arr.length-1;
mid =(max+min)>>1;//(max+min)/2;
while(arr[mid]!=key){
if(key>arr[mid]){
min = mid+ 1;
}
elseif(key<arr[mid])
max = mid- 1;
if(max<min)
return -1;
mid =(max+min)>>1;
}
return mid;
}
- 黑马程序员_java基础_Day2(下)
- 黑马程序员_Java基础(下)
- 黑马程序员_java基础下
- 黑马程序员_Java基础_网络编程(下)_24
- 黑马程序员_Java编程基础下
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java 基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_java基础
- 黑马程序员_Java基础
- archive log
- xmpp1
- 损坏数据修复的一个好妙招
- Dom进阶
- mvn 创建webapp项目
- 黑马程序员_Java基础(下)
- c#数据采集注意事项
- Linux(使用了Ubuntu)和windows传输和共享文件的方法总结
- 17-1-(2)用指针排序
- CentOS 安装rabbitmq-server-3.1.1
- Java中集合类用法总结
- Android解决NetworkOnMainThreadException
- 关于Certificate、Provisioning Profile、App ID的介绍及其之间的关系
- 重回CSDN博客