国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu)之索引查找(分塊查找)

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之索引查找(分塊查找)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

活動(dòng)地址:CSDN21天學(xué)習(xí)挑戰(zhàn)賽

??作者簡介:大家好我是小唐同學(xué)(?>?<?),為夢想而奮斗的小唐,讓我們一起加油?。?!

索引查找分塊查找,數(shù)據(jù)結(jié)構(gòu),算法,數(shù)據(jù)結(jié)構(gòu)

個(gè)人主頁:小唐同學(xué)(?>?<?)的博客主頁

系列專欄:數(shù)據(jù)結(jié)構(gòu)

博友們?nèi)绻彩切率秩腴T數(shù)據(jù)結(jié)構(gòu)我希望大家可以多加練習(xí) 數(shù)據(jù)結(jié)構(gòu)題庫在??途W(wǎng)就有已經(jīng)給大家附上鏈接,可以直接點(diǎn)擊跳轉(zhuǎn):刷題點(diǎn)這里

??途W(wǎng)支持ACM模式哦,刷算法題也很推薦哦?。?!

下面上文章------》

索引查找分塊查找,數(shù)據(jù)結(jié)構(gòu),算法,數(shù)據(jù)結(jié)構(gòu)

?

目錄

刷題圖示:

索引查找介紹:

?索引查找的核心思想:

索引查找代碼實(shí)現(xiàn):

復(fù)雜度:

?????????時(shí)間復(fù)雜度:


刷題圖示:

?索引查找分塊查找,數(shù)據(jù)結(jié)構(gòu),算法,數(shù)據(jù)結(jié)構(gòu)

索引查找介紹:

索引查找也稱為分塊查找,也是順序查找的一種改進(jìn)方法,在索引查找法中,除表本身之外還需要建立一個(gè)索引表。由分塊查找可知,它要分開進(jìn)行,塊內(nèi)元素之間無大小關(guān)系,塊與塊之間有大小關(guān)系(比如說:第二塊中的元素肯定要比第一塊中大,第三塊中元素肯定要比前兩塊中的元素大)所以索引表是有序的,可以進(jìn)行二分查找進(jìn)行查找由于要有索引所以要用到結(jié)構(gòu)體。

?索引查找的核心思想:

準(zhǔn)備工作:

本文索引查找是在一定條件下使用(給索引表開值為3,所以查找表中元素個(gè)數(shù)要是3的倍數(shù)),則每個(gè)塊中的元素個(gè)數(shù)為n/3,則在每個(gè)塊中找出塊中最大值,賦值給索引表,在對索引表的關(guān)鍵字進(jìn)行比較排序

索引查找是先找到確定的塊(這個(gè)過程可以進(jìn)行二分也可以進(jìn)行順序查找(下邊代碼實(shí)現(xiàn)的是順序查找))

確定塊之后在塊中進(jìn)行順序查找

索引查找代碼實(shí)現(xiàn):

# include <stdio.h>
# include <stdlib.h>
struct Lnode
{
	int start;
	int key;
}index_table[3];
int cmp(const void *a,const void *b)
{
	return (*(struct Lnode*)a).key> (*(struct Lnode*)b).key?1:-1;
}
int fenkuai(int key,int a[],int n)//傳參  給出關(guān)鍵字和數(shù)組  n是來確定塊的大小 
{
	int i,j;
	i=0;
	while(i<3&&key>index_table[i].key)
	{
		i++;
	 } 
	 if (i>3)
	 {
	 	return 0; 
	 } 
	  j=index_table[i].start;
	   for(j=index_table[i].start;j<index_table[i].start+n/3;j++)
	   {
	   if(a[j]==key)
	   {
	   	return j;
	   }
	   }
	   return 0;
}
int main()
{
	 int i,j=0,k;
   int n;
   printf("請輸入3的倍數(shù)的個(gè)數(shù)") 
   scanf("%d",&n);
    int a[n];
   for(i=0;i<n;i++)
{
scanf("%d",&a[i]);   	
} 
    int key;
    printf("請輸入要查找的值"); 
    scanf("%d",&key);
    for(i=0;i<3;i++)
    {
    	index_table[i].start=j;
    	j+=n/3;
   	 	for(int k=index_table[i].start;k<=j;k++)
   	 	{
   	 	if(index_table[i].key<a[k])
			{
			index_table[i].key=a[k];	
			}	
		}
	
	}
	qsort(index_table,3,sizeof(index_table[0]),cmp);
//	printf("請輸入你想查找的數(shù)");
	k= fenkuai(key,a,n);
	if(k>0)
	{
		printf("查找成功下標(biāo)為: %d ",k);
	}
	else
	printf("失敗"); 
	return 0; 
}

復(fù)雜度:

?????????時(shí)間復(fù)雜度:

? ? ? ? ? ? ? ? ? ?查找索引表時(shí)采用順序查找:

ASL=L1+LS=(b+1)/2+(s+1)/2=(s^2+2*s+n)/2*s

? ? ? ? ? ? ? ? 對索引表進(jìn)行折半查找時(shí):

ASL=L1+LS=?log2(b+1)?+(s+1)/2文章來源地址http://www.zghlxwxcb.cn/news/detail-786230.html

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)之索引查找(分塊查找)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)算法--1 順序查找二分查找

    順序查找時(shí)間復(fù)雜度為O(n) 我們可以借助Python中的函數(shù)enumerate,通過enumerate遍歷列表返回其索引和值 也可以通過列表長度依次遍歷: 但是二分查找時(shí)間復(fù)雜度為O(logn):

    2024年02月12日
    瀏覽(37)
  • 數(shù)據(jù)結(jié)構(gòu)--》掌握數(shù)據(jù)結(jié)構(gòu)中的查找算法

    數(shù)據(jù)結(jié)構(gòu)--》掌握數(shù)據(jù)結(jié)構(gòu)中的查找算法

    ????????當(dāng)你需要從大量數(shù)據(jù)中查找某個(gè)元素時(shí),查找算法就變得非常重要。 ??????? 無論你是初學(xué)者還是進(jìn)階者,本文將為你提供簡單易懂、實(shí)用可行的知識(shí)點(diǎn),幫助你更好地掌握查找在數(shù)據(jù)結(jié)構(gòu)和算法中的重要性,進(jìn)而提升算法解題的能力。接下來讓我們開啟數(shù)據(jù)

    2024年02月08日
    瀏覽(31)
  • 【數(shù)據(jù)結(jié)構(gòu)(七)】查找算法

    【數(shù)據(jù)結(jié)構(gòu)(七)】查找算法

    在 java 中,我們常用的查找有四種: ????① 順序(線性)查找 ????② 二分查找/折半查找 ????③ 插值查找 ????④ 斐波那契查找 問題: ????數(shù)組arr[] = {1, 9, 11, -1, 34, 89},使用線性查找方式,找出11所在的位置。 代碼實(shí)現(xiàn): 運(yùn)行結(jié)果: 問題: ????請

    2024年02月04日
    瀏覽(17)
  • 數(shù)據(jù)結(jié)構(gòu)--6.3查找算法(靜態(tài)、動(dòng)態(tài))(插值查找)

    靜態(tài)查找:數(shù)據(jù)集合穩(wěn)定,不需要添加,刪除元素的查找操作。 動(dòng)態(tài)查找:數(shù)據(jù)集合在查找的過程中需要同時(shí)添加或刪除元素的查找操作。 對于靜態(tài)查找來說,我們不妨可以用線性表結(jié)構(gòu)組織數(shù)據(jù),這樣可以使用順序查找算法,如果我們在對進(jìn)行排序,則可以使用折

    2024年02月09日
    瀏覽(21)
  • 數(shù)據(jù)結(jié)構(gòu)與算法:樹形查找

    數(shù)據(jù)結(jié)構(gòu)與算法:樹形查找

    左子樹結(jié)點(diǎn)值 根結(jié)點(diǎn)值 右子樹結(jié)點(diǎn)值 對二叉排序樹進(jìn)行中序遍歷,可以得到一個(gè)遞增的有序數(shù)列 原理: 對于一個(gè)給定的二叉排序樹,如果要查找一個(gè)節(jié)點(diǎn),可以按照以下步驟進(jìn)行: 從根節(jié)點(diǎn)開始比較。 如果要查找的值等于當(dāng)前節(jié)點(diǎn)的值,則找到了目標(biāo)節(jié)點(diǎn),返回該節(jié)點(diǎn)。

    2024年02月06日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)與算法之查找: 順序查找 (Javascript版)

    順序查找 思路 遍歷數(shù)組 找到跟目標(biāo)值相等元素,就返回它的下標(biāo) 沒有找到,返回-1 算法實(shí)現(xiàn) 總結(jié) 非常低效,算是入門搜索 時(shí)間復(fù)雜度:O(n) 對于數(shù)組結(jié)構(gòu)或鏈表結(jié)構(gòu)而言,沒什么太多可說的

    2024年02月05日
    瀏覽(32)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】查找(Search)【詳解】

    【數(shù)據(jù)結(jié)構(gòu)與算法】查找(Search)【詳解】

    【知識(shí)框架】 查找(Searching) :就是根據(jù)給定的某個(gè)值,在查找表中確定一個(gè)其等于給定值的數(shù)據(jù)元素( 或記錄)。 查找表(Search Table) :是由同一類型的數(shù)據(jù)元素(或記錄)構(gòu)成的集合。 (Key):數(shù)據(jù)元素中唯一標(biāo)識(shí)該元素的某個(gè)數(shù)據(jù)項(xiàng)的值,使用基于的查找,查

    2024年02月02日
    瀏覽(29)
  • 數(shù)據(jù)結(jié)構(gòu)和算法之二分法查找

    二分法查找,也稱作 二分查找 或 折半查找 ,是一種在有序數(shù)組中快速查找特定元素的算法。它采用分治法思想,通過將問題劃分為規(guī)模更小的子問題,并且通過對子問題的查找來解決原問題。 二分法查找的思路是不斷地將數(shù)組一分為二,然后判斷目標(biāo)值在哪一部分,進(jìn)而

    2024年02月09日
    瀏覽(31)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】python實(shí)現(xiàn)二分查找

    【數(shù)據(jù)結(jié)構(gòu)與算法】python實(shí)現(xiàn)二分查找

    二分查找 又稱折半查找,它是一種效率較高的查找方法 原理:首先,假設(shè)表中元素是按升序排列,將表中間位置記錄的與查找比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個(gè)子表,如果中間位置記錄的大于查找,則

    2024年02月05日
    瀏覽(32)
  • 數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告(四)——查找和排序算法

    數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告(四)——查找和排序算法

    1. 掌握順序查找技術(shù)和拆半查找技術(shù)以及部分排序算法的設(shè)計(jì)思想; 2. 掌握查找、部分排序算法的實(shí)現(xiàn)與執(zhí)行過程。 查找算法 1.順序查找: 從數(shù)組第一個(gè)元素開始逐個(gè)比較,找到后返回相應(yīng)下標(biāo)。 2.折半查找: 從數(shù)組中間開始比較,如果需查找值比中間值大,則在中間值右

    2024年02月07日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包