陣列中尋找出現次數最多的一個數
阿新 • • 發佈:2018-12-11
//第一種方法 #include #include<stdlib.h> using namespace std; //以空間換取時間 //時間複雜度分析2n1+2n2 //空間複雜度為n2 int search(int* a, int len) { int tmp[100] = {0}; int key = 0; int max = 0; int index=0; for (int i = 0; i < len; i++)//2n1 { key = a[i]; tmp[key]++; } for (int i = 0; i < 100; i++)//2n2 { if (max < tmp[i]) { max = tmp[i]; index=i; } } return index; } void main() { int a[1000] = { 0 }; for (int i = 0; i < 1000; i++) { a[i] = rand()%100; } cout << “出現次數最多的數為:” << search(a, 1000) << endl; system(“pause”); }
//第二種方法 #include #include<stdlib.h> #include
void main() { int a[1000] = { 0 }; for (int i = 0; i < 1000; i++) { a[i] = rand() % 100; } cout << “出現次數最多的數為:” << search(a, 1000) << endl; system(“pause”); }