一些小题
星海
posted @ 2011年11月16日 21:20
in 数据结构与算法分析
, 1727 阅读
#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啊。。。睡吧。。。。。。