一些小题
星海
posted @ 2011年11月16日 21:20
in 数据结构与算法分析
, 1736 阅读
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <stdio.h> int majority( int [], int , int ); /* 确认候选值是不是主要元素 */ int primarykey( int arr[], int n) /* 找出候选值 */ { int gal = 1; int key = arr[0]; int i; for (i = 1; i < n; i++) { if (key == arr[i]) { gal++; } else gal--; if (gal == 0) { gal = 1; key = arr[i]; } } return majority(arr, n, key); } int majority( int a[], int n, int key) { int i; int sumkey = 0; for (i = 0; i < n; i++) if (a[i] == key) sumkey++; if (sumkey > n / 2) return key; else return 0; } int main( void ) { int a[] = {3, 3, 4, 3, 3, 4, 2, 4, 3}; printf ( "%d\n" , primarykey(a, 8)); printf ( "%d\n" , primarykey(a, 9)); return 0; } |
啊啊
2011年11月16日 23:14
- - 啥是主要元素……
2011年11月16日 23:17
就是数组中某元素的数目大于 数组大小一倍的数。。。。
2011年11月16日 23:27
- - 一半,先睡觉,累
2011年11月16日 23:32
从没有过MM给你暖被窝的撸SIR啊。。。睡吧。。。。。。