演算法之道 尋找多數元素演算法(Java)

2021-07-02 17:51:53 字數 822 閱讀 2755

定義: 

整型陣列a[1...n],如果整數x在陣列a中出現的次數多於半數,則x稱為多數元素

應用概念:

觀察結論5.1:在原序列中去除兩個不同的元素後,那麼在原序列中的多數元素在新序列中還是多數元素。

例1: 1,2,2,3,2,2,3  顯然2是多數元素

去除1,2,在2,3,2,2,3中2仍是多數元素

去除1,3,在2,3,2,2,3中2更是多數元素

例2: 1,3,2,3,2,2,3  顯然沒有多數元素

去除1,3,在2,3,2,2,3中2成了多數

/**

* */

package chapter9;

/** * @author mohnsnow

* @time 2023年5月21日 下午1:40:39

* */

public class main_element ;

public void majority()

if ((double) count > math.floor((double) p.length / 2)) else

} public int candidate(int m)

if (j == p.length - 1)

return c;

else

return candidate(j + 1);// 如果c不是候選元素,對下乙個元素進行相同的操作,即呼叫遞迴呼叫candidate

} public static void main(string args)

}

c語言版:

python尋找多數元素 尋找多數元素 演算法

定義 整型陣列a 1.n 如果整數x在陣列a 現的次數多於半數,則x稱為多數元素 應用概念 觀察結論5.1 在原序列中去除兩個不同的元素後,那麼在原序列中的多數元素在新序列中還是多數元素。例1 1,2,2,3,2,2,3 顯然2是多數元素 去除1,2,在2,3,2,2,3中2仍是多數元素 去除1,3...

python尋找多數元素 尋找多數元素

今天實現的演算法是尋找多數元素,多數元素是指在乙個含有n個元素的序列 現次數多於 n 2 向下取整 的元素。蠻力尋找多數元素是對每個元素進行計數,如果某個元素的計數超過 n 2 則斷言它是多數元素,否則不存在多數元素。這種方法的時間複雜度過高,可以尋找更高效能的演算法解決這類問題。如果乙個序列存在多...

演算法之尋找陣列中的多數元素

給定乙個大小為 n 的陣列,找到其中的多數元素。多數元素是指在陣列 現次數大於 n 2 的元素。你可以假設陣列是非空的,並且給定的陣列總是存在多數元素。首先,我們先按照一般思路想。可以新定義乙個陣列來儲存原始陣列中每個不同元素出現的個數,然後定義兩個變數來儲存當前最大出現的次數和當前的多數元素。pr...