1. 程式人生 > >資料結構 無序陣列java篇

資料結構 無序陣列java篇

一:無序陣列
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