資料結構與演算法 陣列 01

2021-09-02 16:27:47 字數 2103 閱讀 1846

陣列是應用最廣泛的資料儲存結構。它被植入到大部分的程式語言中,由於陣列十分易懂,所以在這裡就不贅述,主要附上兩端**,乙個是普通的陣列,另乙個是有序陣列。有序陣列是按關鍵字公升序(或降序)排列的,這種排列使快速查詢資料項成為可能,即可以使用二分查詢。

/**

* 初始化-普通陣列

* @author fancy

* @date 2018-12-04 14:29

*/public class generalarray

/*** @author fancy

* 新增資料

* @param value

* @throws exception

*/public void insert (int value) throws exception

array[nelem] = value;

nelem ++;

}/**

* 刪除所有的

* @param value

*/public void deleteallbyvalue (int value) }}

/*** 根據值刪除第乙個下標的資料

* @param value

*/public void deletefristbyvalue (int value)

}deletebyindex(index);

}/**

* 根據下標刪除

* @param index

*/public void deletebyindex (int index)

} else

// 當前的長度減去一

nelem --;

}public int findbyindex (int index) throws arrayindexoutofbound***ception

return array[index];

}public int getarray ()

}

/**

* 有序陣列

* @author fancy

* @date 2018-12-04 15:45

*/public class orderedarray

public int size()

public int getarray()

/*** 二分法

* @param value

* @return

*/public int findindexbyvalue(int value) else if (lowerindex > upperindex) else else }}

return currindex;

}/**

* 優化 二分法

* @param value

* @return

*/public int optimizationfindindexbyvalue(int value) else if (lowerindex > upperindex) else else }}

return currindex;

}public static int binsearch(int srcarray, int start, int end, int key)

if (start >= end) else if (key > srcarray[mid]) else if (key < srcarray[mid])

return -1;

}/**

* 排序插入

* @param value

* @return

*/public void insert(int value) throws exception

if (nelem == 0) else

}nelem ++;

int temp = nelem;

for (;index < temp ; temp --) }}

}

對於陣列這種資料結構,線性查詢的話,時間複雜度為o(n),二分查詢的話時間複雜度為o(log n),無序陣列插入的時間複雜度為o(1),有序陣列插入的時間複雜度為o(n),刪除操作的時間複雜度均為o(n)。

資料結構與演算法 陣列

陣列是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。其中有幾個重要的概念 非線性表 連續的記憶體空間 儲存相同型別的資料 如圖所示,這是乙個長度為5的int陣列arr,我們假設起始的記憶體位址為1000,那麼第乙個元素的記憶體位址範圍就是 1000 1003,這是因為乙...

資料結構與演算法 陣列

題型1 如何用遞迴實現陣列求和 方法1 題型2 如何用乙個for迴圈列印乙個二維陣列 方法1 array在二維陣列中的行號和列號分別為 i maxy i maxy 題型3 用遞迴和非遞迴的方法實現二分查詢 題型4 如何在排序陣列中,找出給定數字出現的次數 方法1 二分查詢,分別找出左邊界和右邊界,左...

資料結構與演算法 陣列

陣列是由相同型別的元素 element 的集合所組成的資料結構,分配一塊連續的記憶體來儲存。利用元素的索引 index 可以計算出該元素對應的儲存位址。維基百科 陣列是線性表資料結構,定義陣列時,系統會分配乙份連續的記憶體空間來儲存一組相同的型別的資料,如int num n 陣列定義為一維陣列 二維...