鞍點


鞍點是二維數組中一個特殊的元素,它是本行最大的值,同時又是本列最小的值

鞍點可能不止一個,也可能沒有。

 

思路

遍歷尋找每一行的最大值,找到最大值后,記錄其列數,再找其列上的最小值。若最大值,最小值相等,則說明該點為鞍點。

 

簡單的鞍點算法

假設二維數組每一行,每一列的最值是唯一的,而且只有一個鞍點。

 

 1 #include <stdio.h>
 2 
 3 main()
 4 {
 5     int a[3][3]={2,4,8,5,6,9,1,3,10};
 6     int max,min,row=0,col=0;
 7     for(int i=0;i<3;i++)
 8     {
 9         max=a[i][0];
10         for(int j=0;j<3;j++)      //依次求每一行元素的最大值 
11         {
12             if(a[i][j]>max)
13             {
14                 max=a[i][j];
15                 row=j;          //並記錄最大值所在位置的列數 
16             }
17         }
18         min=a[0][row];
19         for(int k=0;k<3;k++)      //求特定列的元素的最小值 
20         {
21             if(a[k][row]<min)
22             {
23                 min=a[k][row];
24                 col=k;         //並記錄最小值所在位置的行數 
25             }
26         }
27         if(max==min) printf("%d %d\n",col,row);//鞍點 
28     }
29     
30 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM