2.23如果一個數(shù)組A[1...n]中超過半數(shù)的元素都相同時揖铜,該數(shù)組被稱為含有一個主元素茴丰。 給定一個數(shù)組,設計一個有效算法蛮位,確定該數(shù)組中是否含有一個主元素较沪。如果有,找出這個元素失仁。 該數(shù)組的元素之...

題目三:

2.23如果一個數(shù)組A[1...n]中超過半數(shù)的元素都相同時尸曼,該數(shù)組被稱為含有一個主元素。給定一個數(shù)組萄焦,設計一個有效算法控轿,確定該數(shù)組中是否含有一個主元素冤竹。如果有,找出這個元素茬射。該數(shù)組的元素之間不一定存在順序鹦蠕,如整數(shù)之間就存在順序,可以作形如"A[i]>A[j]嗎"的比較與此不同的是在抛,該數(shù)組中的元素則不一定能做出這樣的比較钟病。(比如可以把數(shù)組中的元素設想成
GIF文件)但是,卻可以在常量時間內回答如下列形式的問題“A[i]>A[j]嗎”
(1)給出一個算法刚梭,以0(nlogn)時間完成本題

算法思想:

根據(jù)主元素的定義與題目要求肠阱,由于不能比較A[i]與A[j]大小,所以就不可以用排序的方式進行尋找主元素朴读,但是仍然可以比較元素之間相等與不相等屹徘,這里我采用刪除數(shù)組中兩個不相等的元素,主元素不變的思想衅金,尋找主元素噪伊。

代碼:

#include<iostream>
#include <vector>
#define INFINITY 100000
using namespace std;
int GetMain(vector<int>&A)
{
    int count = 0, mainE;
    for (int i = 0; i < A.size(); i++)
    {
        if (count == 0)
        {
            mainE = A[i];
            count = 1;
        }
        else
        {
            if (mainE == A[i])
                count++;
            else
                count--;
        }
    }
    if (count > 0)
        return mainE;
    else
        return INFINITY;
}
int main(void)
{
    vector<int>A;
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int temp;
        cin >> temp;
        A.push_back(temp);
    }
    int temp = GetMain(A);
    if (temp != INFINITY)
        cout << "主元素為:" << temp;
    else
        cout << "沒有主元素";
    system("pause");
    return 0;
}

測試案例:

image.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市氮唯,隨后出現(xiàn)的幾起案子鉴吹,更是在濱河造成了極大的恐慌,老刑警劉巖惩琉,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拙寡,死亡現(xiàn)場離奇詭異,居然都是意外死亡琳水,警方通過查閱死者的電腦和手機肆糕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來在孝,“玉大人诚啃,你說我怎么就攤上這事∷骄冢” “怎么了始赎?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長仔燕。 經常有香客問我造垛,道長,這世上最難降的妖魔是什么晰搀? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任五辽,我火速辦了婚禮,結果婚禮上外恕,老公的妹妹穿的比我還像新娘杆逗。我一直安慰自己乡翅,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布罪郊。 她就那樣靜靜地躺著蠕蚜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪悔橄。 梳的紋絲不亂的頭發(fā)上靶累,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音癣疟,去河邊找鬼尺铣。 笑死,一個胖子當著我的面吹牛争舞,可吹牛的內容都是我干的。 我是一名探鬼主播澈灼,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼竞川,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叁熔?” 一聲冷哼從身側響起委乌,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荣回,沒想到半個月后遭贸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡心软,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年壕吹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片删铃。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡耳贬,死狀恐怖,靈堂內的尸體忽然破棺而出猎唁,到底是詐尸還是另有隱情咒劲,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布诫隅,位于F島的核電站腐魂,受9級特大地震影響,放射性物質發(fā)生泄漏逐纬。R本人自食惡果不足惜蛔屹,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一哩治、第九天 我趴在偏房一處隱蔽的房頂上張望骡男。 院中可真熱鬧蹄梢,春花似錦论熙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至擂红,卻和暖如春仪际,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背昵骤。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工树碱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人变秦。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓成榜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹦玫。 傳聞我的和親對象是個殘疾皇子赎婚,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,345評論 0 2
  • 數(shù)組在程序設計中,為了處理方便樱溉, 把具有相同類型的若干變量按有序的形式組織起來挣输。這些按序排列的同類數(shù)據(jù)元素的集合稱...
    朱森閱讀 3,931評論 2 13
  • 回溯算法 回溯法:也稱為試探法,它并不考慮問題規(guī)模的大小福贞,而是從問題的最明顯的最小規(guī)模開始逐步求解出可能的答案撩嚼,并...
    fredal閱讀 13,660評論 0 89
  • 遙望家鄉(xiāng),青磚黛瓦挖帘,故景如舊清幽完丽。 曾幾歸夢,夢裏舊魂遊拇舀。 日暮炊煙云繞舰涌,楊榆柳、霽月枝頭你稚。 村頭外瓷耙、魚游溝壑,枯...
    子越詩集閱讀 286評論 0 1
  • 當你身邊有人笑 請不要阻止 因為 這樣的機會不多 你可知道刁赖?
    紅豆豆mm閱讀 165評論 0 0