數組是應用最普遍的數據存儲結構。它被植入到大部分編程語言中。java
Java中數組的基礎知識算法
建立數組
編程
在Java中把它們看成對象來對待,所以在建立數組是必須使用new操做符:數組
int[] intArray; //defines a reference to an array ingArray = new int[100]; //creates the array, and //sets int Array to refer to it //或使用等價的單語句聲明的方法: int[] int array = new int[100];
數組是一個對象,因此它的名字(前面程序中intArray)是數組的一個引用;它並非數組自己。數組存儲在內存中的其餘地址中,而intArray僅僅保存着這個地址。數組有一個length字段,經過它能夠得知當前數組大小(數據項的個數);
編程語言
int arrayLength = intArray.length; //find array size
一旦建立數組,大小便不可改變。spa
訪問數組數據項設計
數組數據項經過方括號中的下標來訪問。
code
temp = intArray[3]; //get contents of fourth element of array intArray[7] = 66; //intsert 66 into the eighth cell
初始化
對象
當建立整型數組以後,不另行指定那麼數組會自動初始化爲空。
接口
除非將特定的值賦給數組的數據項,不然它們一直是特殊的null對象。
使用下面的語法能夠初始化一個基本類型的數組:
int[] intArray = {1,3,45,23,123,122,56};
數組的大小是由數據列表中的數據項決定的;大小固定不可改變;
有序數組的Java代碼
下面討論一下有序數組的Java代碼,它使用OrdArray類來封裝數組和它的算法。類的核心是find()方法,通脫二分查找類定位一個特定的數據項。
小結
Java中的數組是對象,由new操做符建立;
無序數組能夠提供快速的插入,但查找和刪除較慢;
將數組封裝到類中能夠保護數組不隨意更改;
類的接口類用戶能夠訪問的方法(有時還有字段)組成;
類的接口被設計成使類用戶操做更加簡單;
有序數組能夠使用二分查找;
以B爲底A的對數(大概)是在結果小雨1以前用B除A的次數;
線性查找須要的時間與數組中數據項的個數成正比;
二分查找須要的時間與數組中數據項的個數的對數成正比;
大O表示法爲比較算法的速度提供了一種方便的方法。
O(1)級時間的算法是最好的,O(logN)次之,O(N)爲通常,O(N²)最差;
36頁