procedure DBSCAN (: : Props, Epsilon, MinPoints: Classification)
* init
l := |Props|
tuple_gen_const(l, 0,clusters)
tuple_gen_const(l, 0, points)
tuple_gen_const(l, 1, pointTypes)
tuple_gen_const(l, 0, visiteds)
corePoints := []
* calculate points
for i := 0 to l-1 by 1
clusters[i] := i
for j := i+1 to l-1 by 1
tuple_fabs(Props[i]-Props[j], delta)
if(delta <Epsilon)
points[i] := points[i]+1
points[j] := points[j]+1
endif
endfor
endfor
*core point
for i := 0 to l-1 by 1
if(points[i]>= MinPoints)
pointTypes[i] := 3
corePoints := [corePoints, i]
endif
endfor
* joint core point
n := |corePoints|-1
corePts.at(l-1) := []
for i := 0 to n by 1
for