愛悠閑 > jse基礎-數組

jse基礎-數組

分類: jse  |  標簽: 冒泡排序,內存,棧,局部變量  |  作者: u013992890 相關  |  發布日期 : 2014-12-29  |  熱度 : 35°

數組:

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;
				}
			}
		}
	}
}


   
 



     



快乐彩中奖说明