欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言編程題楊氏矩陣算法快速上手示例詳解

 更新時間:2021年10月22日 16:07:00   作者:高郵吳少  
這篇文章主要為大家介紹了C語言編程題楊氏矩陣算法快速上手的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

題目概要

有一個數(shù)字矩陣,矩陣的每行從左到右都是遞增的,矩陣從上到下都是遞增的,請編寫程序在這樣的矩陣中查找某個數(shù)字是否存在?

一、解題思路

對于查找一個數(shù)組中元素是否存在,很多同學(xué)第一想法就是從頭到尾遍歷一遍。這樣的想法優(yōu)點是代碼簡單且無腦容易上手,但是這樣的缺點也很明顯,比如是m *n的數(shù)組,你從頭到尾遍歷,最壞情況要找m *n次。題目給的相關(guān)條件比如從左向右遞增,從上向下遞增你也完全沒有使用,這樣的暴力求解顯然不是我們想看到的

我們來介紹一種方法,以下列二維數(shù)組進(jìn)行舉例
1 2 3
4 5 6
7 8 9
根據(jù)矩陣的每行從左到右都是遞增這個特性,我們知道矩陣的每一行最后一個數(shù)都是該行最大的,比如上面這個矩陣的3,6,9。對于7是否在這個矩陣中,我們可以與每行的最后一個數(shù)比較,如果7小于當(dāng)前行,則在當(dāng)前行遍歷,否則進(jìn)行與下一行最后一個數(shù)的比較,如果最后一行都小于7說明7是不在該矩陣中的

二、具體代碼

代碼如下(示例):

#include<stdio.h>
void find(int arr[3][3], int k,int h,int l)//h和l分別表示行和列
{
	int x = 0;//第一行橫坐標(biāo)
	int y = l - 1;//第一行最后一列縱坐標(biāo)
	for (x = 0,y = l - 1;arr[x][y] < k&&x<=h-1;x++)//判斷條件多加一個x<h-1是防止越數(shù)組訪問
	{
		;//過濾掉無用的行
	}
	if (x == h)//x==h說明所有行都不匹配
	{
		printf("該數(shù)組沒有這個數(shù)\n");
	}
	else if(arr[x][y]>k)
	{
		int i = 0;
		for (i = 0;i < l;i++)
		{
			if (k == arr[x][i])
			{
				printf("找到了,該數(shù)在第%d行,第%d列", x+1, i + 1);
			}
		}
	}
	else if (arr[x][y] == k)
	{
		printf("找到了,該數(shù)在第%d行,第%d列", x + 1, y + 1);
	}
}
int main()
{
	int arr[3][3] = { 1,2,3,4,5,6,7,8,9 };
	int k = 0;
	printf("請問你要查找的數(shù)是:");
	scanf("%d", &k);
	find(arr, k, 3, 3);
}

以上就是C語言編程題楊氏矩陣算法快速上手示例詳解的詳細(xì)內(nèi)容,更多關(guān)于C語言編程楊氏矩陣算法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++實現(xiàn)延遲的方法詳解

    C++實現(xiàn)延遲的方法詳解

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)延遲的三個方法,文中的示例代碼講解詳細(xì),對我們深入了解C++有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-12-12
  • C語言實現(xiàn)注冊登錄系統(tǒng)

    C語言實現(xiàn)注冊登錄系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)注冊登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • c語言中static修飾函數(shù)的方法及代碼

    c語言中static修飾函數(shù)的方法及代碼

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于c語言中static如何修飾函數(shù)的知識點內(nèi)容,有需要朋友們可以跟著學(xué)習(xí)下。
    2021-10-10
  • C語言實現(xiàn)稀疏矩陣

    C語言實現(xiàn)稀疏矩陣

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)稀疏矩陣的代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C語言數(shù)據(jù)結(jié)構(gòu)之隊列算法詳解

    C語言數(shù)據(jù)結(jié)構(gòu)之隊列算法詳解

    這篇文章介紹了C語言數(shù)據(jù)結(jié)構(gòu)之隊列的算法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C 語言快速排序?qū)嵗a

    C 語言快速排序?qū)嵗a

    本文主要介紹了C語言的快速排序算法,這里給大家舉例說明并附代碼實例,需要的朋友可以參考下
    2016-07-07
  • Qt自定義控件實現(xiàn)線條型加載條

    Qt自定義控件實現(xiàn)線條型加載條

    這篇文章主要為大家詳細(xì)介紹了Qt自定義控件實現(xiàn)線條型加載條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++筆記-設(shè)置cout輸出數(shù)據(jù)的寬度和填充方式

    C++筆記-設(shè)置cout輸出數(shù)據(jù)的寬度和填充方式

    這篇文章主要介紹了C++筆記-設(shè)置cout輸出數(shù)據(jù)的寬度和填充方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言 常量,變量及數(shù)據(jù)詳細(xì)介紹

    C語言 常量,變量及數(shù)據(jù)詳細(xì)介紹

    這篇文章主要介紹了C語言 常量,變量及數(shù)據(jù)詳解的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • C語言使用ffmpeg實現(xiàn)單線程異步的視頻播放器

    C語言使用ffmpeg實現(xiàn)單線程異步的視頻播放器

    這篇文章主要為大家詳細(xì)介紹了C語言如何使用ffmpeg實現(xiàn)單線程異步的視頻播放器功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-12-12

最新評論