暴力法
暴力法:根据问题的描述和所涉及的概念,简单直接的解决问题的方法。
暴力法是可以用来解决广阔领域的各种问题,它也可能也是唯一一种几乎什么问题都能解决的一般性方法。在输入数据的规模并不巨大的情况下,我们可以使用暴力法来解决一些问题。同样,暴力法也是用来衡量一个算法高效与否的基准。
冒泡排序和选择排序就是两个很好的例子,它们就是从直观上出发,根据排序的定义做出的直观算法
最近对问题
最近对问题并不复杂,它要求在包含有n个点的集合S中,找出距离最近的两个点。这就是最近对问题。暴力法就是对每一个点之间的距离都进行求解,然后求出最小值。具体实现如下。
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
| #include <iostream> #include <complex> #include <limits> #include <cmath> using namespace std; double Point(complex<int> *num,int size); int main() { complex<int> n[5]; for (int i = 0; i < 5; i++) { cin >> n[i]; } cout << Point(n, 5) << endl;; system("pause"); } double Point(complex<int> *num,int size) { double min = INT_MAX; double temp; for (int i = 0; i < size - 1; i++) { for (int j = i + 1; j < size; j++) { temp = pow((num[j].real() - num[i].real()), 2) + pow(num[j].imag() - num[i].imag(), 2); if (min > temp) { min = temp; } } } return sqrt(min);
}
|