国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

靜態表查找

2019-11-06 08:20:39
字體:
來源:轉載
供稿:網友

靜態查找表是指表結構不是在查詢過程中動態生成的,它可分為 順序查找(無序)、二分查找(有序)、分塊查找(索引順序查找)。

1.順序查找

時間復雜度(O(n))
public static int seqSearch(int[] array, int key){	for(int i = 0; i < array.length; i++){		if(array[i] == key)			return i;			}	return -1;}

2.二分查找

時間復雜度(O(log2n))
//非遞歸實現public static int binSearch(int[] array, int key){	int low = 0;	int high = array.length - 1;	int mid = 0;	while(low <= high){		mid = (low + high)/2;		if(key == array[mid])			return mid;		else if(key > array[mid])			low = mid + 1;		else			high = mid - 1;		}	return -1;}//遞歸實現public static int binarySearch(int key, int[] array, int low, int high){	if(low > high)		return -1;	if(low <= high){		int mid = (low >>> 1) + (high >>> 1);		if(key == array[mid])			return mid;		else if(key > array[mid])			low = mid + 1;		else			high = mid - 1;	}	return binarySearch(key, array, low, high);}

3.分塊查找

時間復雜度介于順序查找和二分查找之間

分塊查找又稱索引順序查找,它是順序查找的一種改進方法,性能優于順序查找。

方法描述:

將n個數據元素“按塊有序”劃分為m塊(一般塊的長度均勻,最后一塊可以不滿)(m<=n),每一塊中的節點不必有序,但塊與塊之間必須“按塊有序”;即第一塊中的關鍵字必須小于(或者大于)第二塊中的關鍵字,第二塊中的關鍵字必須小于(或者大于)第三塊中的關鍵字,構造索引表,索引表按關鍵字有序排列。

如下圖所示:

圖示為一個索引順序表,其中包括三個塊,第一個塊的其實地址為0,快內最大關鍵字為25;第二個塊的其實地址為5,塊內最大關鍵字為58;第三個塊的起始地址為10,塊內最大關鍵字為88。

分塊查找基本步驟:

Step1、先選取各塊中最大關鍵字構成一個索引表;

Step2、查找分兩個部分:先對索引表進行二分查找或順序查找,以確定待查記錄在哪一塊中;然后,在已確定的塊中用順序法進行查找。


上一篇:leetcode 翻轉數字

下一篇:Centos 6.4安裝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 资兴市| 蓝山县| 灵武市| 富平县| 叶城县| 呼玛县| 财经| 新乡县| 镇赉县| 始兴县| 淮阳县| 万盛区| 渝北区| 夏津县| 黔西县| 镇沅| 略阳县| 新郑市| 亳州市| 亚东县| 土默特右旗| 乾安县| 四会市| 聂荣县| 河北区| 搜索| 汤原县| 滁州市| 葫芦岛市| 全椒县| 镇安县| 花莲市| 普兰县| 旌德县| 金沙县| 宁强县| 张家界市| 邵阳县| 亚东县| 越西县| 平度市|