c++實現求眾數及其重數
問題:在一個由元素組成的表中,出現次數最多的元素稱為眾數,試寫一個尋找眾數的演算法
方法:1)對輸入資料進行排序
2)從每個數字出現的第一個位置開始計數,計算出現的次數,記為count,如果大於最大眾數MaxCount則更新MaxCount,並記下索引位置index
應用: KNN演算法中求取當前資料所屬的分類
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
int* a = new int[n];
for (int i = 0; i < n; i++)
{
cin >> a[i];//輸入資料
}
sort(a, a + n);//資料由低到高進行排序
for (int i = 0; i < n; i++)
{
cout << a[i] << " ";
}
cout << endl;
int i = 0;
int MaxCount = 1;
int index = 0;
while (i < n - 1)//遍歷
{
int count = 1;
int j ;
for (j = i; j < n - 1; j++)
{
if (a[j] == a[j + 1])//存在連續兩個數相等,則眾數+1
{
count++;
}
else
{
break;
}
}
if (MaxCount < count)
{
MaxCount = count;//當前最大眾數
index = j;//當前眾數標記位置
}
++j;
i = j;//位置後移到下一個未出現的數字
}
cout << a[index] << " " << MaxCount << endl;
return 0;
}
相關文章
- 求取眾數及重數的演算法實現(Java)演算法Java
- 分治法求眾數和重數(含檔案輸入輸出)
- 【leetcode】求眾數LeetCode
- Bloom實現及其數學分析OOM
- 浮點數表示及其實現.
- 演算法題:求眾數演算法
- 【演算法】求眾數-js解法演算法JS
- 演算法:Majority Element(求眾數)演算法
- Leetcode刷題——求眾數LeetCode
- 優化的求眾數方法 - 摩爾投票演算法(演算法思想+求眾數的三種方法+摩爾投票演算法改進版求眾數 II)優化演算法
- 【LeetCode】求眾數(四種方法)LeetCode
- 字典樹及其C++實現C++
- 邱奇數的C++實現C++
- 1013 數素數 (20分)/c++實現C++
- 【演算法】已知必存在眾數,求該眾數 -- Boyer-Moore 投票演算法演算法
- LeetCode169求眾數——分治LeetCode
- 【演算法解題報告】求眾數演算法
- C++ :引用計數(reference count) 實現C++
- 用一個巨集實現求兩個數中的最大數
- 演算法設計--眾數和重數問題(分治法)演算法
- 演算法面試題彙總_2求眾數演算法面試題
- Python實現求第6個默尼森數Python
- LeetCode每日一題:求眾數(No.169)LeetCode每日一題
- 使用 Promise 實現任務佇列傳送請求,實現最大請求數目限制Promise佇列
- 求兩個正整數的最大公約數與最小公倍數--C#實現C#
- C++ 大整數類(BigInteger類)實現C++
- Prime Palindromes( 素數迴文) C++實現C++
- 素數迴文——輸出兩整數之間所有既是迴文數又是素數的數 C++實現C++
- 求一個數的二進位制數中所含1的個數的程式碼實現
- C++反射機制:可變引數模板實現C++反射C++反射
- 求眾數、排序演算法、二分法排序演算法
- Leetcode 169:求眾數(最詳細的解法!!!)LeetCode
- LeetCode題庫13. 羅馬數字轉整數(c++實現)LeetCodeC++
- C++ std::list實現大整數加法運算C++
- C++反射機制:可變引數模板實現C++反射薦C++反射
- C++反射機制:可變引數模板實現C++反射(二)C++反射
- 漫遊 javax.servlet 請求引數解析(jetty 實現)JavaServletJetty
- 用q實現篩法求1-n的質數