कुछ क्लस्टरिंग एल्गोरिदम स्थानिक सूचकांक संरचनाओं का उपयोग कर सकते हैं। यह उदाहरण के लिए DBSCAN और प्रकाशिकी को चलाने की अनुमति देता हैओ ( एन लॉगn ) समय (जब तक सूचकांक अनुमति देता है हे ( लॉगn ) क्वेरी)।
जाहिर है, एक एल्गोरिथ्म जो इस जटिलता में चलता है, निर्माण नहीं करता है हे (n2) दूरी मैट्रिक्स।
कुछ एल्गोरिदम के लिए, जैसे एकल-लिंकेज और पूर्ण-लिंकेज के साथ पदानुक्रमिक क्लस्टरिंग, उपलब्ध एल्गोरिदम उपलब्ध हैं (SLINK, CLINK)। यह सिर्फ इतना है कि ज्यादातर लोग जो कुछ भी प्राप्त करते हैं उसका उपयोग करते हैं और जो लागू करना आसान है। और पदानुक्रमित क्लस्टरिंग भोलेपन से लागू करना आसान है, उपयोग करनाn पुनरावृत्तियों पर एक n2 दूरी मैट्रिक्स (जिसके परिणामस्वरूप हे (n3) कलन विधि ...)।
मैं क्लस्टरिंग एल्गोरिदम की तुलना करने वाली एक पूरी सूची से अवगत नहीं हूं। शायद 100+ क्लस्टरिंग एल्गोरिदम हैं, आखिरकार। उदाहरण के लिए, कम से कम एक दर्जन के-साधन वेरिएंट हैं। साथ ही, रन-टाइम जटिलता के साथ-साथ मेमोरी जटिलता भी है; औसत-मामला और सबसे खराब मामला है। कार्यान्वयन के भारी अंतर हैं (उदाहरण के लिए ऊपर उल्लिखित एकल-लिंक, और DBSCAN कार्यान्वयन जो किसी इंडेक्स का उपयोग नहीं करते हैं, और इस प्रकार में हैंहे (n2), और जबकि उन्हें पूर्ण स्टोर करने की आवश्यकता नहीं है n × nदूरी मैट्रिक्स, वे फिर भी सभी जोड़ीदार दूरी की गणना करने की आवश्यकता है)। इसके अलावा मानकों के टन कर रहे हैं। के-साधनों के लिए,कनाजुक है। बहुत अधिक किसी भी एल्गोरिथ्म के लिए, दूरी फ़ंक्शन एक बड़ा अंतर बनाता है (किसी भी कई कार्यान्वयन केवल यूक्लिडियन दूरी की अनुमति देते हैं ...)। और एक बार जब आप महंगी दूरी के कार्यों (यूक्लिडियन जैसे तुच्छ सामान से परे) को प्राप्त करते हैं, तो दूरी की गणना की संख्या जल्दी से मुख्य भाग हो सकती है। तो आपको कुल संचालन की संख्या और आवश्यक दूरी की गणना के बीच अंतर करने की आवश्यकता होगी। तो एक एल्गोरिथ्म जो अंदर हैहे (n2) संचालन लेकिन केवल ओ ( एन ) दूरी की गणना आसानी से एक एल्गोरिथ्म को बेहतर बना सकती है ओ ( एन लॉगn ) दोनों में, जब दूरी के कार्य वास्तव में महंगे हैं (कहते हैं, दूरी समारोह ही है ओ ( एन ))।