Java數據結構與算法(第二章數組)

        數組是應用最普遍的數據存儲結構。它被植入到大部分編程語言中。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頁

相關文章
相關標籤/搜索