資料結構之查詢

2021-04-18 20:14:47 字數 1607 閱讀 3330

/*

*@date:08-07-11

*@descript:折半查詢,插入跟刪除演算法

**/public class binaryinsertex extends seqlist

public binaryinsertex(int n)

public void create()

catch (exception ex)

} public void display()

else if(key<((integer)this.getdata(mid)).intvalue())

else}}

catch (exception ex)

return ret;

} //折半插入

public void insert(int key)

else if(key<((integer)this.getdata(mid)).intvalue())

else

}int i=this.size-1;

while(i>=mid)

this.listarray[mid]=new integer(key);

this.size++;

}catch (exception ex)

} //折半刪除

public object delete(int key)

else if(key<((integer)this.getdata(mid)).intvalue())

else

}int i=mid;

find=(integer)this.listarray[mid];

this.listarray[mid]=null;

while(ithis.size--;

}catch (exception ex)

return find;

} public static void main(string args)

else

system.out.println ("--------------------------------------");

system.out.println ("插入前的線性表列表如下: ");

bi.display();

system.out.println ("插入資料:"+k);

bi.insert(k);

system.out.println ("插入後的線性表列表如下: ");

bi.display();

system.out.println ("--------------------------------------");

system.out.println ("刪除前的線性表列表如下: ");

bi.display();

system.out.println ("刪除資料:"+k);

bi.delete(k);

system.out.println ("刪除後的線性表列表如下: ");

bi.display();

system.out.println ("--------------------------------------");

}}

資料結構之查詢

一 靜態查詢 有序表查詢 平均查詢長度 特點 1 折半查詢 log n 1 1 只是適用於有序表,且限於順序儲存結構 線性鍊錶無法進行折半查詢。2 斐波那契查詢 o logn 平均效能比折半好,但最壞效能比折半差 分割時只需進行加減運算,適用於關鍵字均勻分布的表 對錶長較大的順序表,其效能比折半好 ...

資料結構之查詢

1.折半查詢只能用於有序資料,且是順序儲存結構 實質是用了陣列的下標的折半 2.折半查詢效率是比較高的,但折半查詢必須是順序儲存結構,為了能讓鏈式儲存結構也能用這樣的模式,就引出了平衡二叉樹,他的效率在順序查詢和折半查詢之間 3.b 樹主要用於檔案資料儲存,也就是外存,因為外存的訪問速度慢,為減少訪...

資料結構之查詢

1 搜尋 最簡單的使用 in 運算子 15in 3,5,2,4,1 false2 順序查詢 複雜度是 o n 試想,當查詢的專案不存在列表中時,無序查詢的話最好 最差 平均情況都是n次,但有序查詢就不一樣了,最好的情況是1次,最差n次,平均n 2次對吧。3 二分查詢 複雜度是 o log n def...