C程式設計的抽象思維 演算法分析 大多數元素

2021-09-08 17:55:58 字數 614 閱讀 1251

【問題】

請編寫下面函式 int majorityelement(int array,int n);

該函式返回陣列array中的多數元素。多數元素是指在佔絕對多數(至少51%)的乙個值。假設多數元素不存在。那麼返回常量nomajorityelement,該函式必須滿足以下的條件:

1. 必須以o(n)時間執行。

2. 必須使用o(1)的附加空間。換句話說,可用個別的暫時變數,而不能夠使用不論什麼的暫時陣列。

而且不能使用遞迴解決,這是由於隨著遞迴層數加深,會須要空間來儲存棧幀。

3. 不能改變陣列中的不論什麼元素的值。

【**】

#include void majorityelement(int array, int n)

else

}else

} if(count > 0)

printf("majorityelement: %d\n", majority);

else

printf("nomajorityelement\n");

}main()

; majorityelement(array, 5);

}

《C程式設計的抽象思維》1 9程式設計練習

1 溫度轉換 includeint main 2 長度轉換 includeint main return0 3 計算1 2 3 100 includeint main 4 計算序列值 includeint main 5 按照指定格式輸入乙個整數序列中的最大值 includeint main prin...

《C程式設計的抽象思維》1 9程式設計練習

1 溫度轉換 includeint main 2 長度轉換 includeint main return 0 3 計算1 2 3 100 includeint main 4 計算序列值 includeint main 5 按照指定格式輸入乙個整數序列中的最大值 includeint main pri...

《C程式設計的抽象思維》2 10程式設計練習(未完)

2 按照規定求圓柱的表面積和體積 include include include define pi 3.1415926 void input double r,double h void count double r,double h,double s,double v void output d...