Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Java

जावा सिलेक्शन सॉर्ट:ए हाउ-टू गाइड

जावा चयन क्रम सूची में सबसे छोटा आइटम ढूंढता है और उस मान को सूची की शुरुआत में ले जाता है। यह तब तक बार-बार होता है जब तक कि पहली सूची में प्रत्येक तत्व को क्रमबद्ध नहीं किया जाता है। चयन क्रम क्रमबद्ध सूची लौटाता है।

आप जावा में एक सूची कैसे क्रमबद्ध करते हैं? आपके पास कुछ विकल्प हैं। एक सामान्य विकल्प चयन प्रकार है।

इस गाइड में, हम इस बारे में बात करने जा रहे हैं कि चयन प्रकार क्या हैं और वे कैसे काम करते हैं। हम जावा में चयन प्रकार बनाने के तरीके के बारे में भी जानेंगे ताकि आप जान सकें कि अपना खुद का निर्माण कैसे करें। आइए शुरू करें!

जावा सिलेक्शन सॉर्ट क्या है?

एक चयन क्रम बार-बार सूची में न्यूनतम आइटम ढूंढता है और उसे सूची में अनसोल्ड आइटम की शुरुआत में ले जाता है। यह प्रक्रिया सूची में प्रत्येक आइटम के लिए तब तक दोहराई जाती है जब तक सूची का आदेश नहीं दिया जाता है।

सूची में पहला आइटम सबसे छोटा आइटम माना जाता है। इस आइटम की तुलना अगले तत्व से की जाती है। यदि अगला तत्व छोटा है, तो तत्व स्वैप करते हैं। अंतिम तत्व तक पहुंचने तक यह एल्गोरिदम न्यूनतम तत्व पाता है। फिर, हमारा प्रोग्राम सबसे छोटी वस्तु को सूची की शुरुआत में ले जाता है।

एक चयन क्रम में, एक सूची में दो भाग होते हैं:क्रमबद्ध सूची और क्रमबद्ध सूची। जैसे-जैसे तत्वों को क्रमबद्ध किया जाता है, वे क्रमबद्ध उप-सरणी से क्रमबद्ध उप-सरणी में चले जाते हैं।

आप किसी सूची को आरोही या अवरोही क्रम में क्रमित कर सकते हैं।

आपको चयन क्रम का उपयोग कब करना चाहिए?

जब आपको एक छोटी सूची को सॉर्ट करने की आवश्यकता होती है तो चयन प्रकार इष्टतम होते हैं। ऐसा इसलिए है क्योंकि बड़ी सूचियों को छाँटने के अधिक कुशल तरीके हैं। एल्गोरिदम, जैसे मर्ज सॉर्ट, इंसर्शन सॉर्ट और क्विक सॉर्ट, जावा प्रोग्रामिंग में सिलेक्शन सॉर्ट की तुलना में अधिक कुशल हैं।

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

एक चयन क्रम सबसे अच्छा प्रदर्शन करता है जब सरणी के सभी तत्वों की जाँच अनिवार्य है। यह तब होगा जब सूची में कुछ या कोई भी आइटम सॉर्ट नहीं किया जाता है। चयन प्रकार आमतौर पर बबल प्रकार से बेहतर प्रदर्शन करते हैं, जिसे समझना आसान होता है।

सिलेक्शन सॉर्ट कैसे काम करते हैं?

जावा में एल्गोरिदम को लागू करने की कोशिश करने का कोई फायदा नहीं है, बिना यह जाने कि हम अपने एल्गोरिदम को क्या करना चाहते हैं। आइए एक सूची को क्रम में क्रमबद्ध करने के लिए एक चयन क्रम द्वारा उठाए जाने वाले चरणों के माध्यम से चलना शुरू करें।

निम्नलिखित क्रमबद्ध सरणी पर विचार करें:

17 14 9 12

चयन प्रकार पहले आइटम को सूची में सबसे छोटे के रूप में सेट करते हैं। यह एक अस्थायी मान है जो हमारे प्रोग्राम द्वारा तुलना करने पर हर बार बदल जाता है। यह मान अपने स्वयं के चर में संग्रहीत है।

<टीडी>
<टीडी>
<टीडी>
न्यूनतम =17
17 14 9 12

"न्यूनतम" आइटम की तुलना दूसरे तत्व से की जाती है। यह तत्व सरणी के बिना क्रमबद्ध भाग में है; सॉर्ट किए गए तत्वों के बाद प्रत्येक तत्व को क्रमबद्ध नहीं किया जाता है।

मान लें कि दूसरा तत्व "न्यूनतम" आइटम से छोटा है। इस मामले में, "न्यूनतम" आइटम का मान दूसरे आइटम के मान पर सेट होता है। 14, 17 से छोटा है, इसलिए हमारा नया न्यूनतम मान 14 हो जाता है।

<टीडी>
<टीडी>
<टीडी>
न्यूनतम =14
17 14 9 12

यह प्रक्रिया हमारी सूची के प्रत्येक आइटम के लिए दोहराई जाती है। 9, 14 से कम है। इसलिए, "न्यूनतम" का मान 9 हो जाता है। 9, 12 से कम नहीं है, इसलिए न्यूनतम का मान वही रहता है।

एक पुनरावृत्ति के बाद, हमारी सूची ने पाया कि 9 सबसे छोटी संख्या है। यह आइटम सूची के प्रारंभ में ले जाया गया है:

9 17 14 12

यह प्रक्रिया पहले अवर्गीकृत तत्व से फिर से शुरू होती है। इसलिए, हमारी तुलनाओं का अगला सेट 17 से शुरू होगा:

  • 17 न्यूनतम के बराबर है।
  • हमारा कार्यक्रम 17 की तुलना 14 से करता है। "न्यूनतम" का मान 14 हो जाता है।
  • हमारा कार्यक्रम 14 की तुलना 12 से करता है। "न्यूनतम" का मान 12 हो जाता है।
  • हमारा कार्यक्रम सूची में क्रमित वस्तुओं के अंत में 12 चलता है।

हमारी सूची इस तरह दिखती है:

9 12 17 14

यह प्रक्रिया तब तक दोहराई जाती है जब तक हमारी सूची का आदेश नहीं दिया जाता। जब हमारे एल्गोरिथ्म का निष्पादन समाप्त हो जाता है, तो निम्न सूची वापस आ जाती है:

9 12 14 17

हमारी सूची को आरोही क्रम में क्रमबद्ध किया गया है।

जावा में सिलेक्शन सॉर्ट कैसे बनाएं

यह जानना एक बात है कि चयन क्रम कैसे काम करता है; एक बनाने के लिए यह दूसरा है। आइए जावा में एक चयन प्रकार को कोड करें जो उस तर्क का उपयोग करता है जिसकी चर्चा हमने वॉकथ्रू में की थी।

कार्यक्रम सेट करें

Selection_sort.java नामक फ़ाइल बनाएँ। हम अपने कोड में Java Arrays लाइब्रेरी को इंपोर्ट करके शुरू करेंगे:

java.util.Arrays आयात करें;

हम बाद में अपने कोड में इस पुस्तकालय का उपयोग करते हैं। हम इसका उपयोग अपने क्रमबद्ध सरणी को एक स्ट्रिंग में बदलने के लिए करते हैं ताकि हम इसे कंसोल पर प्रिंट कर सकें।

एक सॉर्ट फ़ंक्शन बनाएं

इसके बाद, हम एक वर्ग घोषित करने जा रहे हैं और एक विधि बना रहे हैं जो हमारे चयन प्रकार को निष्पादित करती है। निम्नलिखित को अपने selection_sort.java . में जोड़ें फ़ाइल:

 क्लास सिलेक्शनसॉर्ट {शून्य सॉर्टनंबर्स (इंट ऐरे []) {इंट साइज =एरे। लेंथ; के लिए (इंट आइटम =0; आइटम <आकार - 1; आइटम ++) {इंट न्यूनतम =आइटम; के लिए (इंट नंबर =न्यूनतम + 1; संख्या <आकार; संख्या ++) {अगर (सरणी [संख्या] <सरणी [न्यूनतम]) {न्यूनतम =संख्या; } } इंट अस्थायी =सरणी [आइटम]; सरणी [आइटम] =सरणी [न्यूनतम]; सरणी [न्यूनतम] =अस्थायी; } }} 

हमारी कक्षा में, हमने सॉर्टनंबर . नामक एक विधि को परिभाषित किया है जो हमारी तरह का प्रदर्शन करता है। हम अपने सरणी की लंबाई की गणना करके शुरू करते हैं। हम अपने ऐरे की लंबाई को जावा वेरिएबल में स्टोर करते हैं।

फिर, हम लूप के लिए जावा बनाते हैं। यह लूप हमारी सूची में प्रत्येक आइटम के माध्यम से पुनरावृत्त होता है। इसके अंदर लूप के लिए, हमें न्यूनतम आइटम मिलता है, जो सूची में पहला आइटम है।

फिर हम सूची में प्रत्येक आइटम के साथ न्यूनतम आइटम की तुलना करने के लिए लूप के लिए एक और शुरू करते हैं।

यदि लूप के लिए पढ़ने वाली संख्या न्यूनतम संख्या से छोटी है, तो "न्यूनतम" का मान वह संख्या बन जाता है। हमारे लूप में, "नंबर" उस संख्या के सूचकांक मूल्य का प्रतिनिधित्व करता है जिससे हम न्यूनतम मूल्य की तुलना कर रहे हैं।

एक बार सूची में प्रत्येक संख्या के साथ न्यूनतम संख्या की तुलना करने के बाद, हमारा आंतरिक लूप बंद हो जाता है। फिर सूची में सभी क्रमबद्ध संख्याओं के बाद न्यूनतम संख्या को स्थानांतरित कर दिया जाता है।

सॉर्ट फ़ंक्शन को कॉल करें

हमारा कोड अभी कुछ नहीं करता है। हमने अभी तक अपनी कक्षा को कॉल नहीं किया है और उसे क्रमबद्ध करने के लिए एक सूची दी है।

सॉर्टनंबर के नीचे सूची में विधि, निम्नलिखित कोड जोड़ें:

<पूर्व>सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग तर्क []) { int [] toSort ={17, 14, 9, 12}; चयन सॉर्ट नया सॉर्ट =नया चयन सॉर्ट (); newSort.sortNumbers(toSort); System.out.println(Arrays.toString(toSort));}

हमारी मुख्य विधि के अंदर हमने क्रमबद्ध करने के लिए आइटम की एक सूची घोषित की है जिसे toSort . कहा जाता है . फिर हम अपने सेलेक्शनसॉर्ट क्लास का एक इंस्टेंस इनिशियलाइज़ करते हैं जिसे न्यूसॉर्ट कहा जाता है। हम इसका उपयोग अपने सॉर्टनंबर . पर कॉल करने के लिए करते हैं विधि, जो क्रमबद्ध सरणी में मानों को क्रमबद्ध करती है।

सॉर्टनंबर विधि निष्पादित होने के बाद, हम सॉर्ट किए गए सरणी को कंसोल पर प्रिंट करते हैं। हम इसे Arrays.toString() . का उपयोग करके करते हैं विधि, जो हमारे सरणी को स्ट्रिंग्स की सूची में परिवर्तित करती है।

चलिए अपना कोड चलाते हैं:

[9, 12, 14, 17]

हमारी सूची को क्रमबद्ध कर दिया गया है!

चयन सॉर्ट जावा:मानों को अवरोही क्रम में क्रमबद्ध करें

यह ध्यान देने योग्य है कि आप मूल्यों को अवरोही क्रम में क्रमबद्ध कर सकते हैं। ऐसा करने के लिए, कोड की निम्न पंक्ति को अपने सॉर्टनंबर . में बदलें विधि:

अगर (सरणी [संख्या] <सरणी [न्यूनतम]) {

इस कोड के साथ:

अगर (सरणी [संख्या]> सरणी [न्यूनतम]) {

यह कोड जांचता है कि "न्यूनतम" मान लूप द्वारा एक्सेस किए जा रहे मूल्य से अधिक है या नहीं। इसका मतलब है कि “न्यूनतम” का मान सूची में सबसे कम मान के बजाय सबसे ज़्यादा मान दिखाएगा.

यदि आप किसी सूची को अवरोही क्रम में क्रमबद्ध कर रहे हैं, तो भ्रम को रोकने के लिए, आपको "न्यूनतम" का नाम बदलकर "अधिकतम" कर देना चाहिए।

आपने कर दिया। आपने चयन सॉर्टिंग एल्गोरिदम का उपयोग करके जावा में एक सूची को सॉर्ट किया है।

जावा चयन सॉर्ट की जटिलता क्या है?

एल्गोरिथम का मूल्यांकन करते समय हमें तीन समय की जटिलताओं पर विचार करने की आवश्यकता होती है:सबसे अच्छा मामला, सबसे खराब मामला और औसत मामला।

चयन क्रम में ओ (एन ^ 2) की सबसे अच्छी, औसत और सबसे खराब स्थिति जटिलता है। इसका मतलब है कि जैसे-जैसे सूची में आइटम्स की संख्या बढ़ती जाएगी, एल्गोरिथम में तेजी से अधिक समय लगेगा।

क्या आप एल्गोरिदम की जटिलता से भ्रमित हैं? बिग ओ नोटेशन पर हमारी दो-भाग श्रृंखला देखें। यह वह अंकन है जिसका उपयोग हम एल्गोरिदम की जटिलता का वर्णन करने के लिए करते हैं।

निष्कर्ष

चयन प्रकार डेटा की सूचियों को छाँटने का एक कुशल तरीका है। वे एक क्रमबद्ध सूची से सबसे छोटी वस्तु का चयन करके और उस वस्तु को क्रमबद्ध सूची की शुरुआत में ले जाकर काम करते हैं। यह प्रक्रिया तब तक दोहराई जाती है जब तक सूची क्रमबद्ध नहीं हो जाती।

क्या आप जावा डेवलपर बनना चाहते हैं? हमारी जावा गाइड कैसे सीखें देखें। इस गाइड में आपको सर्वोत्तम ऑनलाइन पाठ्यक्रमों और शिक्षण संसाधनों पर शीर्ष शिक्षण युक्तियाँ और सलाह मिलेगी।


  1. Java में JList के लिए कितने प्रकार के सिलेक्शन मोड हैं?

    एक JList एक घटक है जो JComponent . का विस्तार कर सकता है वर्ग वस्तुओं की एक सूची प्रदर्शित करने के लिए प्रयोग किया जाता है जो उपयोगकर्ता को एक या अधिक वस्तुओं का चयन करने की अनुमति देता है। जावा में JList के लिए तीन प्रकार के चयन मोड हैं ListSelectionModel.SINGLE_SELECTION :एक समय में केवल एक सू

  1. सॉर्ट () पायथन में

    इस ट्यूटोरियल में, हम लिस्ट की सॉर्ट मेथड के बारे में जानेंगे। आइए ट्यूटोरियल में गोता लगाएँ। किसी भी सूची को आरोही . में सॉर्ट करने के लिए विधि सॉर्ट का उपयोग किया जाता है या अवरोही गण। वैकल्पिक पैरामीटर के साथ या बिना सॉर्ट विधि के कई मामले हैं । विधि सॉर्ट एक इन-प्लेस विधि है। यह सीधे मूल सूची म

  1. जावा में सूची को ऐरे में बदलें

    जावा में लिस्ट और ऐरे के बीच कनवर्ट करना एक बहुत ही सामान्य ऑपरेशन है। जावा में किसी सूची को ऐरे में बदलने का सबसे अच्छा और आसान तरीका .toArray() का उपयोग करना है। विधि। इसी तरह, हम Arrays.asList() . का उपयोग करके किसी सूची को वापस ऐरे में बदल सकते हैं विधि। नीचे दिए गए उदाहरण दिखाते हैं कि कैसे