/*
*@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...