一:无序数组
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