Java 中幾種查詢演算法

2021-08-31 10:58:59 字數 1448 閱讀 2147

順序查詢

說明:順序查詢適合於儲存結構為順序儲存或鏈結儲存的線性表。

int sequelsearch(elemtype s,keytype key,int n)

/*在s[0]-s[n-1]中順序查詢關鍵字為key的記錄*/

/*查詢成功時返回該記錄的下標序號;失敗時返回-1*/

----------------------------

二分查詢

1、遞迴方法實現:

int bsearch(elemtype a,elemtype x,int low,int high)

/*在下屆為low,上界為high的陣列a中折半查詢資料元素x*/

elemtype;

typedef struct

indextype;

int indexsequelsearch(indextype ls,elemtypes,int m,int l,keytype key)

/*分塊查詢關鍵字為key的記錄。索引表為ls[0]-ls[m-1]*/

/*順序表為s,塊長為l*/

}----------------------------

二叉排序樹查詢

1、二叉排序樹查詢演算法:

a、非遞迴演算法:

btree *search(btree *b,int x)

/*在二叉樹b中查詢x的過程*/ }

b、遞迴演算法:

bsnodetype *search(bsnodetype *bt,keytype key)

/*在二叉樹bt中查詢元素為key的元素*/

return(p);

}2、二叉樹的生成

a、向乙個二叉樹b中插入乙個結點s的函式如下:

void insert(b,s)

btree *b,*s;

b、生成二叉樹

void create(btree *b)

while(x!=-1);

}c、從二叉樹中刪除乙個結點

bsnodetype *delete(bsnodetype *bt,keytype key)

/*在bt為根結點的二叉樹中刪除值為key的結點*/

else if(bt->lchild==null)/*bt的左子樹為空*/

else if(bt->rchild==null)/*bt的右子樹為空*/

else

}/*在bt->lchild為根結點的二叉樹中刪除值為key的結點*/

if(bt->key>key&&bt->lchild!=null)

bt->lchild=delete(bt->lchild,key);

/*在bt->rchild為根結點的二叉樹中刪除值為key的結點*/

if(bt->keyrchild!=null)

bt->rchild=delete(bt->rchild,key);

return(bt);

}

java面試中oracle幾種查詢(經典)

一 內連線和外連線 內連線用於返回滿足連線條件的記錄 而外連線則是內連線的擴充套件,它不僅會滿足連線條件的記錄,而且還會返回不滿足連線條件的記錄,語法如下 oracle 1.select table1.column,table2.column from table1 inner left right...

java中幾種常見的排序演算法

本人只研究過氣泡排序 選擇排序和快速排序,下面是快速排序的 一 冒泡 bubble 排序 氣泡排序 bubblesort 的基本思想是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。如此重複下去,直至最終完成排序。時間複雜度為 o n n 適用於排序小列表。void bubblesortarr...

Java幾種排序演算法

陣列排序 author jrunner 2009 10 26 e main jrunner 126.com class testsort print a tosort1 a tosort2 a tosort3 a tosort4 a print a 方法一 更換值 private static vo...