資料結構 無序陣列java篇
阿新 • • 發佈:2018-12-06
一:無序陣列
1:查詢時間複雜度O(n)
查詢是線性查詢,遍歷陣列
2:插入時間複雜度是常量O(I)
插入是插入到陣列的最後
3: 刪除 時間複雜度O(n)
先查詢(平均N/2次),再移動資料(平均N/2)
public class UnOrderArray {
private int[] aint;
private int nElems;
public UnOrderArray(int size) {
aint = new int[size];
nElems = 0;
}
public void insert(int value) {
aint[nElems] = value;
nElems ++;
}
public int find(int key) {
for(int x = 0; x < nElems; x ++) {
if(aint[x] == key) {
return x;
}
}
return nElems;
}
public boolean delete(int value ) {
int y = nElems;
boolean bool = false;
for(int x = 0; x < nElems; x ++) {
if(aint[x] == value) {
y = x;
bool = true;
break;
}
}
if(y != nElems) {
for(int x = y; x < nElems; x ++) {
aint[x] = aint[x+1 ];
}
nElems--;
}
return bool;
}
public void display() {
for(int x = 0; x < nElems ; x++) {
System.out.print(aint[x] + " ");
}
System.out.println("");
}
public static void main(String[] args) {
UnOrderArray sort = new UnOrderArray(10);
sort.insert(20);
sort.insert(12);
sort.insert(31);
sort.insert(7);
sort.insert(10);
sort.insert(16);
sort.insert(13);
sort.display();
int idx = sort.find(7);
System.out.println(idx);
sort.delete(10);
sort.display();
}
}
輸出:
20 12 31 7 10 16 13
3
20 12 31 7 16 13