gpt4 book ai didi

C++ 计算排序数组的模式

转载 作者:可可西里 更新时间:2023-11-01 18:25:34 24 4
gpt4 key购买 nike

我必须编写一个 C++ 代码来查找数组的中位数和众数。有人告诉我,在对数字进行排序后,找到数组的模式要容易得多。我对功能进行了排序,但仍然找不到模式。

 int counter = 0;
for (int pass = 0; pass < size - 1; pass++)
for (int count = pass + 1; count < size; count++) {
if (array [count] == array [pass])
counter++;
cout << "The mode is: " << counter << endl;

最佳答案

如果数组已经排序,你可以一次计算一个数字的出现次数。然后只保存出现次数最多的数字。而且你可以在一个 for 循环中找出模式。否则,您将不得不执行多个 for 循环。在下面的链接中查看详细信息示例 Find-the-Mode-of-a-Set-of-Numbers

这是代码,

int number = array[0];
int mode = number;
int count = 1;
int countMode = 1;

for (int i=1; i<size; i++)
{
if (array[i] == number)
{ // count occurrences of the current number
++count;
}
else
{ // now this is a different number
if (count > countMode)
{
countMode = count; // mode is the biggest ocurrences
mode = number;
}
count = 1; // reset count for the new number
number = array[i];
}
}

cout << "mode : " << mode << endl;

关于C++ 计算排序数组的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com