最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言楊氏矩陣實(shí)例教你編寫

 更新時(shí)間:2023年02月01日 14:52:24   作者:莫陌尛.  
楊氏矩陣是一個(gè)數(shù)字矩陣,矩陣的每一行從左到右一次遞增,矩陣從上到下遞增,在這樣的矩陣中查找一個(gè)數(shù)字是否存在。時(shí)間復(fù)雜度小于O(N),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

一、楊氏矩陣是什么

一個(gè)數(shù)字矩陣,矩陣的每一行從左到右一次遞增,矩陣從上到下遞增,在這樣的矩陣中查找一個(gè)數(shù)字是否存在。時(shí)間復(fù)雜度小于O(N)。

二、編寫步驟

1.首先給出一個(gè)三乘三的矩陣,我們想找到數(shù)字7是否在這個(gè)數(shù)組之中,如圖所示。

2. 我們給出的方法是一種從右上角開始,另一種是從左下角開始。比如從右上角開始,編寫一個(gè)函數(shù)。

3. 函數(shù)的編寫。從右上角開始,將右上角數(shù)字與數(shù)字7比較,如果數(shù)字7大于右上角的數(shù)字(3)(因?yàn)榈谝恍凶畲蟮臄?shù)字是右上角的數(shù)字(3),可以確定所判斷的數(shù)字不在第一行),那么排除第一行,且行數(shù)加一繼續(xù)判斷右上角數(shù)字與數(shù)字7的大??;如果數(shù)字7小于右上角的數(shù)字(3),那么排除第一列,且列數(shù)減一繼續(xù)判斷。至到判斷到數(shù)字與7相等,返回1;否則判斷到左下角數(shù)字,未能與數(shù)字7相等,返回0。

4. 函數(shù)的返回類型是int,返回1或者0,判斷如果為1,證明數(shù)組矩陣存在數(shù)字7,反之沒有。

1.代碼的編寫

int FindNum(int arr[3][3],int k,int row,int col)
{
	int x = 0;
	int y = col-1;
	while(x<=row&&y>=0)
	{
		if(arr[x][y]<k)
		{
			x++;
		}
		else if(arr[x][y]>k)
		{
			y--;
		}
		else
		//找到了;
		return 1;
	}
	//找不到
	return 0;
}
int main()
{
	int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
	int k = 7;
	int ret = FindNum(arr,k,3,3);
	if(ret ==1)
	{
		printf("找到了\n");
	}
	else
	printf("找不到\n");
	return 0;
}

2.運(yùn)行結(jié)果

三、程序的改進(jìn)

在數(shù)組矩陣中,如果能找到相應(yīng)的數(shù)字如7,那么在基礎(chǔ)之上輸出數(shù)字的下標(biāo)。

1.代碼的編寫

int FindNum(int arr[3][3],int k,int* px,int* py)
{
	int x = 0;
	int y = *py-1;
	while(x<=*py&&y>=0)
	{
		if(arr[x][y]<k)
		{
			x++;
		}
		else if(arr[x][y]>k)
		{
			y--;
		}
		else
		{//找到了;
			*px = x;
			*py = y;
			return 1;
		}
	}
	//找不到
	return 0;
}
int main()
{
	int arr[3][3]={{1,2,3},{4,5,6},{7,8,9}};
	int k = 7;
	int x = 3;
	int y = 3;
	//返回型參數(shù)
	int ret = FindNum(arr,k,&x,&y);
	if(ret ==1)
	{
		printf("找到了\n");
		printf("下標(biāo)是:%d,%d\n",x,y);
	}
	else
	printf("找不到\n");
	return 0;
}``

2.運(yùn)行結(jié)果

四、總結(jié)

楊氏矩陣。是對組合表示理論和舒伯特演算很有用的工具。它提供了一種方便的方式來描述對稱和一般線性群的群表示,并研究它們的性質(zhì)。楊氏矩陣是劍橋大學(xué)大學(xué)數(shù)學(xué)家阿爾弗雷德·揚(yáng)在1900年提出。

楊氏矩陣百科

到此這篇關(guān)于C語言楊氏矩陣實(shí)例教你編寫的文章就介紹到這了,更多相關(guān)C語言楊氏矩陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++設(shè)計(jì)模式之模板方法模式(TemplateMethod)

    C++設(shè)計(jì)模式之模板方法模式(TemplateMethod)

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之模板方法模式TemplateMethod,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • c++實(shí)現(xiàn)逐行讀取配置文件寫入內(nèi)存的示例

    c++實(shí)現(xiàn)逐行讀取配置文件寫入內(nèi)存的示例

    這篇文章主要介紹了c++實(shí)現(xiàn)逐行讀取配置文件寫入內(nèi)存的示例,需要的朋友可以參考下
    2014-05-05
  • 詳解C++設(shè)計(jì)模式編程中建造者模式的實(shí)現(xiàn)

    詳解C++設(shè)計(jì)模式編程中建造者模式的實(shí)現(xiàn)

    這篇文章主要介紹了C++設(shè)計(jì)模式編程中建造者模式的實(shí)現(xiàn),建造者模式將一個(gè)復(fù)雜對象的構(gòu)建于它的表現(xiàn)分離,可以減少代碼冗余,需要的朋友可以參考下
    2016-03-03
  • C語言二分法求解方程根的兩種方法

    C語言二分法求解方程根的兩種方法

    這篇文章主要為大家詳細(xì)介紹了C語言二分法求解方程根的兩種方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C++數(shù)據(jù)結(jié)構(gòu)之list詳解

    C++數(shù)據(jù)結(jié)構(gòu)之list詳解

    list是一種序列式容器。list容器完成的功能實(shí)際上和數(shù)據(jù)結(jié)構(gòu)中的雙向鏈表是極其相似的,list中的數(shù)據(jù)元素是通過鏈表指針串連成邏輯意義上的線性表,也就是list也具有鏈表的主要優(yōu)點(diǎn),即:在鏈表的任一位置進(jìn)行元素的插入、刪除操作都是快速的
    2021-11-11
  • 淺談C++指針(必看)

    淺談C++指針(必看)

    下面小編就為大家?guī)硪黄獪\談C++指針(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • C++字符串的截取問題

    C++字符串的截取問題

    這篇文章主要介紹了C++字符串的截取問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解windows下C/C++的內(nèi)存泄露檢測

    詳解windows下C/C++的內(nèi)存泄露檢測

    C/C++由于其沒有垃圾回收機(jī)制,所以內(nèi)存的釋放一直以來都依靠于程序員的手工釋放,因此極其容易出現(xiàn)內(nèi)存泄露的問題,而在比較大的程序之中,查找內(nèi)存泄露是一件比較困難的事情,所以我們需要一些簡便的方法來檢測內(nèi)存泄露,避免內(nèi)存泄露導(dǎo)致設(shè)備崩潰
    2021-06-06
  • C語言實(shí)現(xiàn)掃雷OvO(完整代碼)

    C語言實(shí)現(xiàn)掃雷OvO(完整代碼)

    相信大家都玩過掃雷游戲,因?yàn)樗?jīng)典了,今天我們用C語言來模擬實(shí)現(xiàn)掃雷游戲,結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2022-04-04
  • C語言實(shí)現(xiàn)文件讀寫操作

    C語言實(shí)現(xiàn)文件讀寫操作

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)文件讀寫操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12

最新評論

汾阳市| 肇东市| 孝感市| 满城县| 洛宁县| 康平县| 通化市| 故城县| 会东县| 郓城县| 揭东县| 肥城市| 三门峡市| 辉南县| 米脂县| 三台县| 沙坪坝区| 枝江市| 顺昌县| 永昌县| 道孚县| 通州区| 清丰县| 芮城县| 西安市| 新河县| 和龙市| 孝感市| 崇左市| 霍林郭勒市| 易门县| 武定县| 宁德市| 岳阳县| 河源市| 文水县| 卓资县| 巴林右旗| 泰来县| 昌吉市| 沈阳市|