Một cách đơn giản khác là về cơ bản sử dụng sắp xếp mảng 1D: tức là lặp qua từng điểm và lấy các giá trị ở khoảng cách tối thiểu từ nó theo cả hai hướng tích cực và tiêu cực. Ví dụ:
data = [1,2,3,4,5,6,7,8,9,10,12]
k = 5
for a in data:
print {'group': sorted(k, key=lambda n: abs(n-a))[0:k], 'point': a}
sẽ đưa ra:
{'group': [1, 2, 3, 4, 5], 'point': 1}
{'group': [2, 1, 3, 4, 5], 'point': 2}
{'group': [3, 2, 4, 1, 5], 'point': 3}
{'group': [4, 3, 5, 2, 6], 'point': 4}
{'group': [5, 4, 6, 3, 7], 'point': 5}
{'group': [6, 5, 7, 4, 8], 'point': 6}
{'group': [7, 6, 8, 5, 9], 'point': 7}
{'group': [8, 7, 9, 6, 10], 'point': 8}
{'group': [9, 8, 10, 7, 6], 'point': 9}
{'group': [10, 9, 8, 12, 7], 'point': 10}
{'group': [12, 10, 9, 8, 7], 'point': 12}
Những điểm nào, rằng các mục gần với một điểm cụ thể về cơ bản thuộc nhóm của nó. Điều duy nhất cần suy ngẫm trong kỹ thuật này là biến k, là kích thước cố định của cụm :-).