数组的定义
元素类型[] 数组名=new 元素类型[元素个数或者数组长度]
元素类型[] 数组名=new 元素类型[]{元素1,元素2,……}
元素类型[] 数组名={元素1,元素2,……}
内存的划分:
1、寄存器
2、本地方法区
3、方法区
4、栈内存
存储的都是局部变量而且局部变量所属的作用域一旦结束,该变量就自动释放
5、堆内存
存储的是数据和对象(数据其实就是对象)凡是new的就建立在堆内存中
特点:
1、每个实体都会有一个首地址
2、堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同,整数是0,小数是0.0或者是0.0f,boolean是false,char是'\u0000'
3、垃圾回收机制(jvm自动回收)
数据的常见操作
冒泡排序(选择最大的放在最后)
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-1-x; y++)
{
if(arr[y]>arr[y+1])
{
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
}
选择排序(选择最小的放在最前)
public static void selectSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=x+1; y<arr.length; y++)
{
if(arr[x]>arr[y])
{
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
二分查找法
public static int halfSearch(int[] arr,int key)
{
int max,min,mid;
min = 0;
max = arr.length-1;
mid = (max+min)/2;
while(arr[mid]!=key)
{
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
if(max<min)
return -1;
mid = (max+min)/2;
}
return mid;
}
public static int halfSearch_2(int[] arr,int key)
{
int max,min,mid;
min = 0;
max = arr.length-1;
while(min<=max)
{
mid = (max+min)>>1;
if(key>arr[mid])
min = mid + 1;
else if(key<arr[mid])
max = mid - 1;
else
return mid;
}
return -min-1;
}