資料結構 陣列的介紹

2021-09-12 05:30:49 字數 1839 閱讀 3137

[size=small][color=olive][b]資料結構之 --陣列

陣列是應用的最廣泛的資料儲存結構,它被植入到大部分程式語言中;

物件的名字就是該物件對應記憶體位址的引用,並不是物件的本身;

如何使用物件導向運算元據結構:

首先將資料儲存結構從程式需中分離出,程式的其他部分稱為使用這個結構的使用者;第二部則是改進儲存結構和使用者之間的通訊;

學會將程式劃分成類:

解釋:資料儲存結構本身就是累,程式中使用這個結構的部分也是類,通過將長鬚劃分成兩個類,可以使程式的功能清晰,使之更加容易設計和

理解;抽象的概念:

從what中將how分離出來的過程,即類中的操作如何進行,相對什麼事類使用者可見的,被稱為抽象。抽象是軟體工程的重要方面。

把類的功能抽象出來後,可以使程式設計更簡單,因為不需要在設計的初期就考慮細節問題;

小貼士:用來儲存資料物件的類有時被稱為容器類;(container class);

在陣列中的查詢方式:

線性查詢:按順序,逐一的進行匹配;

二分查詢:將陣列資料項範圍不斷對半分割來查詢特定的資料項。在有序陣列中占有很大的優勢;

二分查詢的核心**:[/b][/color][/size]

/* 使用二分查詢的演算法 */

long b = ;

public int find(long searchkey)else if(lower>upper)elseelse}}

}

[size=small][color=olive][b]有序陣列:

優點:使用有序陣列最大的優點是查詢的速度比無序陣列快的多了;

不足:插入刪除比較慢;

對數:使用對數的乙個方程可以求出二分查詢中步數對應的範圍;

每次對範圍加倍可以建立出乙個數列,它是2的冪;設s表示步數,r表示範圍,則:

r=2^s

如果已知步數s,通過該方程可以得出範圍r;例如:s=6;r=64;

大 o 表示法:用來評價計算機演算法的效率;(粗略的度量方法被稱作"大o 表示法");

演算法效率示例:

無序陣列的插入:無序陣列中的插入是見到的唯一乙個 與陣列中的資料項個數無關的演算法,

新資料項總是被放在下乙個有空的地方,a[a.length()],然後該值增加,無論陣列中

的資料項個數n有多大,一次插入的總是用相同的時間。那麼說明:向乙個無序陣列中插入乙個資料項的

時間t是乙個常數k:

常數 t=k;

線性查詢:與n成正比 (n為資料總數)

尋找特定資料項所需的比較次數平均為資料項總數的一半;因此設n為資料項總數,搜尋時間

t與n的一半成正比;

t=k*n/2;

二分查詢:

t=k*㏒2(n)

說明:由於所有的對數都和其他對數成比例,那麼可以將為底數的常數併入k,不指定底數:

t=k*log(n);

大 o 表示法:

大o表示法在上面表示方法的基礎上省去了常數k,當比較演算法時,並不在乎具體的微處理晶元或

編譯器;真正需要比較的是對應不同的n值,t是如何變化的,而不是具體的數字。因此不需要常數;

大o表示法使用大寫字元o,可以認為其含義是"order of"(大約是),我們可以使用大o表示

法來描述線性查詢使用了o(n)級時間,二分查詢使用了o(log n)級時間,向乙個無序陣列中的插入

使用o(1),或常數級時間;

大o表示法的實質並不是對執行時間給出實際值,而是表達了執行時間是如何受資料項個數所影響的。

除了實際安裝後真正測量一次演算法的執行時間之外,這可能是對演算法進行比較的最有意義的方法了;

[/b][/color][/size]

資料結構介紹

當你決定看這篇文章,就意味著系統學習資料結構的開始。本節,我們先來講什麼是資料結構。什麼是資料結構 資料結構,直白地理解,就是研究資料的儲存方式。我們知道,資料儲存只有乙個目的,即為了方便後期對資料的再利用,就如同我們使用陣列儲存 是為了後期取得它們的加和值,無緣由的資料儲存行為是對儲存空間的不負責...

資料結構 陣列

建立陣列 大小為50 棧空間存myarray引用 堆空間存乙個大小為50,預設值為0的陣列。棧空間myarray引用指向堆空間該陣列。int myarray new int 50 public class testarray public class testarray if s intarray....

資料結構 陣列

陣列 就是相同型別的資料按一定順序排列的集合,把有限個型別相同的資料元素用乙個名字表示,通過編號來區分。名字即為陣列名,編號即為下標。陣列是最簡單 使用最廣泛的一種資料結構,其實就是一塊連續的記憶體,哪怕物理上不連續,邏輯上也是連續的,連續存放著一組相同型別資料元素。陣列的定義 type 變數名 n...