数组:
1.使用数组的步骤:声明数组、分配空间、赋值
2.数组初始化
动态初始化:int[] a = new int[5];
静态初始化:int[] b = {1,2,3,4,5};
默认初始化:int [] c = new int[]{1,2,3,4,5};
3.数组在内存中的存放
局部变量放在栈内存当中(引用类型的变量,还有一些基本类型的变量),但引用变量所引用的对象是保存是堆内存当中的。(包括数组还有一些我们平常写的普通的类对象)
4.对数组的操作
//打印数组
public class ArrayPrint {
public static void main(String[] args) {
/* 创建数组并赋值的方式必须在一条语句中完成
* int[] arr = new int[5];
arr={1,2,3,4,5};*/
//赋值的时候不能指定数组的长度,
//假如没赋值,在创建实例的时候必须指定数组的大小
//int[] array = new int[]{1,2,3};
int[] array={1,2,3};
for(int i=0;i<array.length;i++)
System.out.println("array["+i+"] = "+array[i]);
//没有实例该对象无法调用其方法,除非将方法satic
//抽象出一个打印方法出来
//printArr(array);
ArrayPrint ap = new ArrayPrint();
ap.printArr(array);
}
public void printArr(int[] arr){
for(int i=0;i<arr.length;i++)
System.out.println("array["+i+"] = "+arr[i]);
}
}
//获取数组最大元素
public static int getMax(float[] arr){
float max = arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i])
max = arr[i];
}
return max;
}
//对一个数组{5,1,6,4,2,8,9}进行排序 选择排序
1.选择排序:不稳定,时间复杂度 O(n^2)
2.选择排序的思想:每次从未排序的数列中,挑选一个最小或最大的值放在已排好序的数列的最后
public class Test {
public static void main(String[] argv) {
int arr[] = {5,1,6,4,2,8,9};
sort(arr);
for(int i:arr)
System.out.println(i);
}
public static void selectSort(int[] arr){
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++)
if(arr[j]<arr[i]){
int temp = arr[j];
arr[j] = arr[i] ;
arr[i] = temp;
}
}
}
}
//对一个数组{5,1,6,4,2,8,9}进行排序 冒泡排序
1.冒泡排序:稳定,时间复杂度 O(n^2)
2.冒泡排序思想
每一次将最具有特征的一个数(或者object)放到序列的最前面,或者最后面。
也可以让相邻的两个数(对象)比较,重新排序后,再次重新比较,如果有结果(必出大小等)再次重新排列,否则进行下一次比较。
public class Test {
public static void main(String[] argv) {
int arr[] = { 5, 1, 6, 4, 2, 8, 9 };
bubbleSort(arr);
for (int i : arr)
System.out.println(i);
}
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length-1; i++)
{
for (int j = 0; j < arr.length-i-1; j++) {
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}