好的,这是一个使用 C 语言编写 k-means 算法的例子。这里我们假设有一个包含二维坐标的点的数组 points
,类型为 struct point
,并且已经定义了计算两点之间距离的函数 distance
:
```c #include <stdio.h> #include <stdlib.h> #include <float.h>
#define K 3 #define N 10 #define ITERS 100
typedef struct point { double x; double y; } point;
double distance(point a, point b) { double dx = a.x - b.x; double dy = a.y - b.y; return sqrt(dx * dx + dy * dy); }
int main() { point points[N] = { {0, 0}, {1, 1}, {1, 0}, {0, 1}, {2, 2}, {2, 1}, {2, 0}, {1, 2}, {0, 2}, {3, 3}}; point means[K]; int cluster_sizes[K]; int clusters[N];
for(int iter = 0; iter < ITERS; iter++) {