यह प्रश्न फिशर-येट्स एल्गोरिदम के संबंध में एक दिए गए सरणी के यादृच्छिक फेरबदल को लौटाने के लिए है। विकिपीडिया पृष्ठ का कहना है कि इसकी जटिलता हे (एन) है, लेकिन मुझे लगता है कि हे है कि (एन एन लॉग इन करें)।
प्रत्येक पुनरावृत्ति i में, 1 और i के बीच एक यादृच्छिक पूर्णांक चुना जाता है। बस मेमोरी में पूर्णांक लिखना हे (लॉग आई) है, और चूंकि एन पुनरावृत्तियों हैं, कुल है
O (लॉग 1) + O (लॉग 2) + ... + O (लॉग एन) = O (n लॉग एन)
जो भोली एल्गोरिथ्म बेहतर नहीं है। क्या मुझसे कोई चूक हो रही है?
नोट: भोली एल्गोरिथ्म प्रत्येक तत्व को अंतराल (0,1) में एक यादृच्छिक संख्या असाइन करना है, फिर असाइन किए गए संख्याओं के संबंध में सरणी को सॉर्ट करें।