GeekInterview.com
  I am new, Sign me up!
 
GeekInterview.com  >  Interview Questions  >  Programming  >  C++
Go To First  |  Previous Question  |  Next Question 
 C++  |  Question 134 of 203    Print  
How do you calculate mode from an array of integers?

  
Total Answers and Comments: 3 Last Update: September 11, 2008     Asked by: cherry 
  
 Sponsored Links

 
 Best Rated Answer

No best answer available. Please pick the good answer available or submit your answer.
September 26, 2007 11:02:43   #1  
sukhvir        

RE: How do you calculate mode from an array of integer...

If array in ascending order use binary search otherwise use sequential search


 
Is this answer useful? Yes | NoAnswer is useful 0   Answer is not useful 2Overall Rating: -2    
September 11, 2008 13:09:54   #2  
OSaienni Member Since: September 2008   Contribution: 7    

RE: How do you calculate mode from an array of integers?

Below is an example program I wrote to find mode average. Mode average is the most frequently occuring number in a set.
I haven't handle the case when there are 2 or more values with the same count.

#include <iostream>

#include <set>

int main()

{

typedef std::multiset<int> int_multiset;

int_multiset mySet;

//populate collection

mySet.insert(10);

mySet.insert(1);

mySet.insert(23);

mySet.insert(23);

mySet.insert(3);

mySet.insert(41);

mySet.insert(2);

mySet.insert(10);

mySet.insert(23);

mySet.insert(54);

mySet.insert(23);

mySet.insert(10);

mySet.insert(12);

mySet.insert(43);

mySet.insert(23);


//find mode average mode average is most frequently appearing number.

int nModeValue 0;

int nModeCount 0;

//get beginning iterator

int_multiset::iterator iter mySet.begin();

//NOTE: I DON'T HANDLE CASE WHERE MODE IS NOT UNIQUE

while(iter ! mySet.end()) {

//get current value and count

const int nCurrent *iter;

const int cCurrent mySet.count(nCurrent);

if(cCurrent > nModeCount) {

nModeValue nCurrent;

nModeCount cCurrent;

}

//move iterator by number of count

for(int nMove 0; nMove < cCurrent; ++nMove ++iter);

}

std::cout <<
"Mode Average Is : " << nModeValue << std::endl;

return 0;

}


 
Is this answer useful? Yes | No
September 11, 2008 13:21:10   #3  
OSaienni Member Since: September 2008   Contribution: 7    

RE: How do you calculate mode from an array of integers?
Same as above except using arrays.

#include <iostream>

#include <algorithm>

int main()

{

int arrNums[] {1 2 4 5 1 3 4 2 3 4};

//find mode average mode average is most frequently appearing number.

int nModeValue 0;

int nModeCount 0;

const int nArrayLen sizeof(arrNums) / sizeof(arrNums[0]);

std::sort(&arrNums[0] &arrNums[nArrayLen]);


//NOTE: I DON'T HANDLE CASE WHERE MODE IS NOT UNIQUE

int nIter 0;while(nIter ! nArrayLen)

{

// //get current value and count

const int cCurrent std::count(&arrNums[nIter] &arrNums[nArrayLen] arrNums[nIter]);if(cCurrent > nModeCount) {

nModeValue arrNums[nIter];

nModeCount cCurrent;

}

nIter + cCurrent;

}

std::cout <<
"Mode Average Is : " << nModeValue << std::endl;

return 0;

}


 
Is this answer useful? Yes | No


 
Go To Top


 Sponsored Links

 
About Us -  Privacy Policy -  Terms and Conditions -  Contact -  Ask Question -  Propose Category -  Site Updates 

Copyright © 2005 - 2009 GeekInterview.com. All Rights Reserved

Page copy protected against web site content infringement by Copyscape