欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

有關(guān)二分查找的邊界思考-創(chuàng)新互聯(lián)

1、二分查找概念

海港ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

二分查找又稱折半查找,優(yōu)點是比較次數(shù)少,查找速度快,平均性能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查找方法適用于不經(jīng)常變動而查找頻繁的有序列表。首先,假設(shè)表中元素是按升序排列,將表中間位置記錄的關(guān)鍵字與查找關(guān)鍵字比較,如果兩者相等,則查找成功;否則利用中間位置記錄將表分成前、后兩個子表,如果中間位置記錄的關(guān)鍵字大于查找關(guān)鍵字,則進一步查找前一子表,否則進一步查找后一子表。重復(fù)以上過程,直到找到滿足條件的記錄,使查找成功,或直到子表不存在為止,此時查找不成功。

2、二分查找簡單實現(xiàn)

(1)左開右閉 【 )

//非遞歸版本
int* BinarySearch(int *a,int n,int key)
{
	if (a==NULL||n==0)
	{
		return NULL;
	}
	//[)
	int left=0;
	int right=n;
	while(left<right) //如果寫成left<=right 有可能越界
	{
		int mid=left+(right-left)/2;
		if (a[mid]>key)
		{
			right=mid;     
			//如果寫成right=mid+1 元素如果是a[0]=0,a[1]=1,要找1
			//left=0,right=1,mid=0
			//然后a[mid]<1,right=mid;此時找不到1,因為left<right
			//所以當(dāng)為【)不要把未判斷元素直接做right的下標(biāo)
		}
		else if(a[mid]<key)
		{
			left=mid+1;
		}
		else
		{
			return a+mid;
		}
	}
	return NULL;
}
void testBinary()
{
	int a[10]={0,1,3,5,45,78,98,111,121,454};
	for (int i=9;i>=0;i--)
	{
		int *temp=BinarySearch(a,10,i);
		if(temp==NULL)
		{
			cout<<"NULL"<<endl;
		}
		else
			cout<<*temp<<endl;
	}
}
//遞歸版本
int * BinarySearch_R(int *a,int n,int key,int left,int right)
{
    if(a==NULL||n==0)
    {
        return NULL;
    }
    if(left<right)
    {
        int mid=left+(right-left)/2;
        if(a[mid]>key)
        {
            return BinarySearch_R(a,n,key,left,mid);
        }
        else if(a[mid]<key)
        {
            return BinarySearch_R(a,n,key,mid+1,right);
        }
        else
        {
            return a+mid;
        }
    }
    else
    {
        return NULL;
    }
}

void testBinary_R()
{
	int a[10]={0,1,3,5,45,78,98,111,121,454};
	for (int i=9;i>=0;i--)
	{
		int *temp=BinarySearch_R(a,10,i,0,10);
		if(temp==NULL)
		{
			cout<<"NULL"<<endl;
		}
		else
			cout<<*temp<<endl;
	}
}

(2)左閉右閉 【】

int* BinarySearch_C(int *a,int n,int key)
{
    if(a==NULL||n==0)
    {
        return NULL;
    }
    //[]
    int left=0;
    int right=n-1;
    while(left<=right)
    {
        int mid=left+(right-left)/2;
        if(a[mid]>key)
        {
            right=mid-1; //a[mid]的值已經(jīng)判斷過了
        }
        else if(a[mid]<key)
        {
            left=mid+1; //a[mid]已經(jīng)判斷過了
        }
        else
            return a+mid;
    }
    return NULL;
}

void testBinary()
{
	int a[10]={0,1,3,5,45,78,98,111,121,454};
	for (int i=9;i>=0;i--)
	{
		int *temp=BinarySearch_C(a,10,i);
		if(temp==NULL)
		{
			cout<<"NULL"<<endl;
		}
		else
			cout<<*temp<<endl;
	}
}

//遞歸版本
int * BinarySearch_CR(int *a,int n,int key,int left,int right)
{
    if(a==NULL||n==0)
    {
        return NULL;
    }
    if(left<=right)
    {
        int mid=left+(right-left)/2;
        if(a[mid]>key)
        {
            return BinarySearch_R(a,n,key,left,mid-1);
        }
        else if(a[mid]<key)
        {
            return BinarySearch_R(a,n,key,mid+1,right);
        }
        else
        {
            return a+mid;
        }
    }
    else
    {
        return NULL;
    }
}

void testBinary_R()
{
	int a[10]={0,1,3,5,45,78,98,111,121,454};
	for (int i=9;i>=0;i--)
	{
		int *temp=BinarySearch_CR(a,10,i,0,9);
		if(temp==NULL)
		{
			cout<<"NULL"<<endl;
		}
		else
			cout<<*temp<<endl;
	}
}

題目:

正整數(shù)數(shù)組a[0], a[1], a[2], ···, a[n-1],n可以很大,大到1000000000以上,但是數(shù)組中每個數(shù)都不超過100?,F(xiàn)在要你求所有數(shù)的和。假設(shè)這些數(shù)已經(jīng)全部讀入內(nèi)存,因而不用考慮讀取的時間。希望你用最快的方法得到答案。

提示:二分。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站標(biāo)題:有關(guān)二分查找的邊界思考-創(chuàng)新互聯(lián)
本文URL:http://aaarwkj.com/article4/ddoooe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊網(wǎng)站策劃、面包屑導(dǎo)航、小程序開發(fā)、響應(yīng)式網(wǎng)站品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
一卡二卡三卡四卡日韩| 亚洲av成人在线不卡| 亚洲国产成人综合一区二区三区| 欧美一区二区三在线| av一区二区三区三| 强d乱码中文字幕在线| 亚洲精品高清一区二区| 久久av少妇亚洲精品| 18岁以下禁看视频网站| 青青草国产成人自拍视频在线观看 | 日本在线观看精品综合| 欧美亚洲午夜精品久久久| 伦理中文字幕一区二区| 日韩在线观看视频有码| 伊人亚洲一区二区三区| 欧美日韩人美精品一区在线| 亚洲香蕉视频免费在线观看 | 亚洲av男人天堂一区| 99热在线精品国产观看| av第一福利大全导航| 日韩精品一区二区三区都在看| 男人天堂av一区二区| 国产欧美日韩另类在线播放| 下一篇亚洲一区二区三区| 亚洲乱码一区二区av| 青青草成人免费在线公开视频| 国产原创av超爽剧情系列| 亚洲桃色一区二区三区四区| 国产a天堂一区二区专区| 欧美精品亚洲精品国产| 亚洲欧美国产另类综合| 亚洲欧美日韩性生活视频| 日韩高清中文字幕在线| 成人深夜免费观看视频| 91久久精品国产一区| 日韩精品熟妻人女亚洲一区| 熟妞人妻精品一区二区视频| 久久精品亚洲国产成人av| 亚洲成人福利免费网站| 亚洲欧洲日韩另类在线| 少妇激情一区二区三区免费视频|