題目描述:若矩陣am*n中的某一元素a[i][j]是第i行中的最小值,同時又是第j列的最大值,則稱此元素為該矩陣的乙個鞍點。試編寫乙個演算法找出乙個矩陣中的鞍點,並返回他的下標(如果有的話)。
//這是乙個找矩陣鞍點的演算法,所謂的矩陣的鞍點指的是若a[i][j]是第i行的最小值,且是第j列的最大值,這a[i][j]為矩陣的乙個鞍點
//我的演算法思想是先找到第i行的最小值,並記錄下來,本演算法中是用min記錄的,同時記錄下它的列數minj,如後再在第minj列中找到該列的最大值max,比較
//min和max是否相等,若想等則說明a[i][j]為矩陣的乙個鞍點,這樣逐行檢測下去,便可全部找到矩陣的鞍點,演算法時間複雜度為o(i*j);
#include "stdafx.h"
#include using namespace std;
int _tmain(int argc, _tchar* argv)
} cout << "輸入矩陣為下: " << endl;
for (int i = 0; i < 3; i++)
cout << endl;
} for (int i = 0; i < 3; i++)
else
}max = a[0][minj]; //把第minj列的第乙個值賦給max,作為當前的最大值
int m = 1; //用來進行行數計數迴圈
while (m < 3)
else
}if (max == min) //若min和max相等則輸出該值的值和下標,同時繼續找下乙個矩陣鞍點
}system("pause");
return 0;
}
資料結構課後題目原始碼
習題描述如下 假設以陣列q m 存放迴圈佇列中的元素,同時設定乙個標誌tag,以tag 0和tag 1來區別在隊頭指標 front 和隊尾指標 rear 相等時,佇列狀態為 空 還是為 滿 試編寫與此結構相應的插入 enqueue 和刪除 dequeue 演算法。以下是博主自己碼的 不喜勿噴!ifn...
資料結構課後題原始碼
題目描述 若將乙個雙端佇列順序表表示在一維陣列v m 中,兩個端點設為end1和end2,並組織成乙個迴圈佇列。如圖3.29所示,試寫出雙端佇列所用指標end1和end2的初始化條件及隊空和隊滿條件,並基於此結構的相應的插入 enqueue 和刪除 dequeue 演算法。下面是博主自己碼的演算法,...
資料結構原始碼 迷宮
include include include include include define stack init size 1000 define stack more 10 define overflow 2 define ok 1 define error 0 define true 1 de...