採用j**a**描述
我們通常說到的時間複雜度是指漸進時間複雜度,其定義為:
若存在函式f(n),當
,其中c是不為零的常數,則稱f(n)是t(n)的同數量級函式。記作t(n)=o(f(n)),則稱o(f(n))為演算法的漸進時間複雜度,簡稱時間複雜度。
先記住如下常見的時間複雜度之間的關係:
o(1)
簡單的說,時間複雜度是執行演算法所需要的時間成本,空間複雜度是執行演算法所需要的空間成本。同理,空間複雜度的計算公式記作:
s(n)=o(f(n)),
n為問題的規模。遞迴演算法的空間複雜度和遞迴深度成正比。
二、陣列
陣列的特點:
1、陣列中的每個元素都有自己的下標,下標從0開始,到陣列長度-1結束;
2、陣列中的值在記憶體中順序儲存;
下面就是我自己寫的陣列的增刪改查以及擴容,列印操作的**:
package由**量也可以看出,陣列的查和改操作非常簡單,一般都不用封裝成方法。datastructure.myarray;
public
class
myarray
/***
* @description 向陣列中增加元素
* @param
element 增加的元素的值
* @param
index 要在哪個位置增加元素
*/public
void insert(int index, int
element)
//判斷已有的元素個數是否達到陣列容量的最大值,如果達到,則進行擴容
if (size >=array.length)
//進行插入操作,將要插入位置的右邊的元素全部向後移動乙個位置。
//如果從插入位置開始移動,會覆蓋掉右邊的值,
//所以只能從最後乙個元素開始,從右往左逐個的向後移動乙個位置
for (int i = size - 1; i >= index; i--)
array[index] =element;
//新增成功以後要改變陣列的總個數
size++;
}/***
* @description 刪除陣列中指定位置的元素
* @param
index 要刪除元素的下標
* @return
返回要刪除的元素的值
*/public
int delete(int
index)
//這裡要先把要刪除的元素的值取出來,
//注意不能直接返回,不然會提前結束呼叫
int element =array[index];
//然後將該值之後的元素往左移動一位,
//來覆蓋掉這個值,達到刪除效果
for(int i = index; i < size - 1; i++)
//刪除之後將陣列的個數減1
size--;
return
element;
}/***
* @description 更改陣列中某個位置的值
* @param
index 要改的位置
* @param
element 要改成多少值
* 這個方法其實可以不需要,為了美觀才寫的
*/public
void update(int index, int
element)
/***
* @description 查詢陣列中某個位置的值
* @param
index 要查詢的位置
* @return
返回要查詢的位置的值
*/public
int getdata(int
index)
/***
* @description 擴容的方法renewarray(),擴容為原來的兩倍
*/public
void
renewarray()
/***
* @description 列印陣列中得每個元素得值
*/public
void
printarray()
else}}
public
static
void
main(string args)
}
也正是因為如此, 適合使用陣列的場景是:讀操作多、寫操作少的場景。
插入操作:陣列擴容和移動元素都只有一層for迴圈,所以其時間複雜度為o(n),綜合起來是o(n);
刪除操作、列印操作:也只有一層for迴圈,時間也複雜度是o(n);
查和改操作:沒有迴圈,時間複雜度為o(1);
資料結構之陣列
陣列的考點 1.二維陣列元素位址計算 三維陣列中元素個數的計算 選擇題 2.廣義表的基本概念 會求表尾 表頭,填空題 3.矩陣的壓縮儲存 壓縮儲存的目的 對稱矩陣壓縮儲存後的大小,填空題 針對考點,一一擊破。哈哈哈。第一部分 首先,二維陣列元素位址計算。注 只要知道以下三要素便可隨時求出任一元素的位...
資料結構之 陣列
陣列是線性表,就是資料排成像一條直線一樣的結構,除了陣列,鍊錶,佇列,棧都是線性結構 而非線性表就是二叉樹,堆,圖等,資料之間不是簡單的先後關係。陣列有連續的記憶體空間和相同型別的資料。正式有了這兩個限制,才有了乙個堪稱殺手鐗的特性 隨機訪問 但是刪除,插入乙個資料,為了保證連續性,就需要做大量的資...
資料結構之 陣列
陣列是由相同型別的元素的集合所組成的資料結構並且是分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。一維陣列就是最簡單的陣列,就像 int data 二維陣列實質就是儲存的一維陣列,就像 int data 大於等於二維的陣列就叫多維陣列。需要初始化空間大小,並且...