java - Removing Duplicates Inside Insertion Sort -


छवि प्रविष्ट करें यहाँ विवरण

मैं मूल रूप से निम्न समस्या से निपट रहा हूँ जहां मैं सम्मिलित सॉर्ट बदलने की कोशिश कर रहा हूं ताकि यह काउंटरों को डुप्लिकेट भी हटा सके। निम्नलिखित प्रविष्टि प्रकार है।

  सार्वजनिक शून्य सम्मिलित करेंटार्ट () {for (int i = 1; i & lt; nElems; i ++) {int temp = a [i]; Int j = i; जबकि (j & gt; 0 & amp; amp; amp; और amp; temp & lt; = a [j - 1]) {a [j] = एक [j - 1]; j--; } एक [जे] = अस्थायी; }}   

मुझे यकीन है कि अगर मैं दृष्टिकोण को सही ढंग से समझा, यदि मैं इसे सही ढंग से समझता हूं (कृपया मुझे बताएं कि क्या मैं ग़लत हूं या नहीं) दृष्टिकोण से पता चलता है कि मुझे अंदरूनी लूप शुरू होने से पहले पूरी सरणी के माध्यम से दोहराया जाना चाहिए और कोई भी मनमाना संख्या जैसे -1 और फिर जब अंदरूनी लूप शुरू होता है तो यह सरणी को सुलझाएगा और सभी डुप्लिकेट को एक साथ शुरुआत में खड़ी कर दिया जाएगा।

यदि यह मामला है तो मैं हर तत्व को सरणी में तुलना कर सकता हूँ सम्मिलन प्रकार शुरू होने से पहले एक दूसरे का अधिकार शुरू होता है और किसी भी डुप्लिकेट को लेबल करता है - 1 और उसके बाद सम्मिलन प्रकार सॉर्टिंग भाग का ख्याल रखेगा। जिसके बाद मैं arraySize कम कर सकता हूँ

हालांकि मुझे लगता है कि मैं इसे सही ढंग से समझ नहीं पा रहा हूं ताकि कोई कृपया इस बारे में कोई सुझाव दे सके?

आपको केवल अपने समय की लूप में एक पंक्ति जोड़ने की आवश्यकता है।

  जबकि (j & gt; 0 & amp; amp; amp; & amp; amp; temp & lt; = a [j - 1]) { अगर (temp == a [j - 1]) temp = -1; एक [जे] = एक [जे -1]; j--; }   

आप दो हिस्सों के रूप में सरणी के बारे में सोच सकते हैं। पहला भाग 0 से i-1 तक जाता है और उसे सॉर्ट किया जाता है। दूसरे भाग से मैं सरणी के अंत तक जाता हूं और बिना किसी क्रम के लूप के प्रत्येक पुनरावृत्त में आप पहले वर्णित तत्वों (जो कि [i] है) को लेते हैं और इसे अस्थायी रूप में रखते हैं। यह वह तत्व है जिसे आप क्रमबद्ध भाग में सम्मिलित करना चाहते हैं। तब आप सॉर्ट किए गए भाग के सभी तत्वों को तब तक बदलते हैं जब तक आप टेम्पलेट को सम्मिलित करने के लिए जगह नहीं मिलते। यदि आप अस्थायी -1 को बदलते हैं, तो आपके तत्व को जो अब सम्मिलित करने का प्रयास कर रहे हैं, वह -1 हो गया है। सॉर्टिंग एल्गोरिथ्म सही स्थान पर 1 को आज़माएं और सम्मिलित करें, जो सरणी की शुरुआत है।

Comments

Popular posts from this blog

c# - Textbox not clickable but editable -

php - how to change mysql_result($res, 0, "url"); to mysqli -

Matlab transpose a table vector -