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