Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# का उपयोग करके अतिरिक्त स्थान के बिना ऐरे में 0,1,2 को कैसे सॉर्ट करें (डच नेशनल फ्लैग)?


हमें तीन पॉइंटर्स लेने की आवश्यकता है, लो, मिड, हाई। हम लो और मिड पॉइंटर्स को शुरुआत में उपयोग करेंगे, और हाई पॉइंटर दिए गए ऐरे के अंत पर इंगित करेगा।

यदि ऐरे [मिड] = 0, तो ऐरे [मिड] को ऐरे [लो] के साथ स्वैप करें और दोनों पॉइंटर्स को एक बार बढ़ाएं।

यदि ऐरे [मिड] = 1, तो कोई स्वैपिंग आवश्यक नहीं है। मिड पॉइंटर को एक बार बढ़ाएं।

यदि ऐरे [मिड] = 2, तो हम ऐरे [मिड] को ऐरे [हाई] के साथ स्वैप करते हैं और हाई पॉइंटर को एक बार डिक्रीमेंट करते हैं।

समय जटिलता - O(N)

उदाहरण

using System; namespace ConsoleApplication{    public class Arrays{       private void Swap(int[] arr, int pos1, int pos2){          int temp = arr[pos1];          arr[pos1] = arr[pos2];          arr[pos2] = temp;       }       public void DutchNationalFlag(int[] arr){          int low = 0;          int mid = 0;          int high = arr.Length - 1;          while (mid <= high){             if (arr[mid] == 0){                Swap(arr, low, mid);                low++;                mid++;             }             else if (arr[mid] == 2){                Swap(arr, high, mid);                high--;             }             else{                mid++;             }          }       } } class Program{    static void Main(string[] args){          Arrays a = new Arrays();          int[] arr = { 2, 1, 1, 0, 1, 2, 1, 2, 0, 0, 1 };          a.DutchNationalFlag(arr);          for (int i = 0; i < arr.Length; i++){             Console.WriteLine(arr[i]);          }          Console.ReadLine();       }    } }

आउटपुट

0 0 0 0 1 1 1 1 2 2 2
  1. - C# का उपयोग करके संग्रह को सरणी में कैसे कॉपी करें?

    किसी संग्रह को सरणी में कॉपी करने के लिए, पहले इसे सेट करें:List<string> list1 = new List<string>(); list1.Add(Car); list1.Add(Bus); list1.Add(Motorbike); list1.Add(Train);अब एक स्ट्रिंग सरणी घोषित करें और कॉपी करने के लिए CopyTo() मेथड का उपयोग करें:string[] arr = new string[20]; list1.

  1. - C# मेथड में पैरामीटर ऐरे (param array) का उपयोग करके पैरामीटर्स कैसे पास करें?

    एक मेथड घोषित करते समय, आप पैरामीटर के रूप में पास किए गए तर्कों की संख्या के बारे में निश्चित नहीं होते। C# पैरामीटर ऐरे (या पैरामीटर सरणी) ऐसे समय में मदद करते हैं।यह है कि आप param का उपयोग कैसे कर सकते हैं:public int AddElements(params int[] arr) { }निम्नलिखित पूरा उदाहरण है:उदाहरणusing System;

  1. - जावा में प्रीडिफाइंड मेथड्स के बिना स्ट्रिंग को कैसे सॉर्ट करें?

    एक String एक ऑब्जेक्ट है जो कैरेक्टर्स के इम्यूटेबल अनुक्रम को दर्शाता है और एक बार बनने के बाद इसे बदला नहीं जा सकता। java.lang.String क्लास का उपयोग स्ट्रिंग ऑब्जेक्ट बनाने के लिए किया जा सकता है। नीचे दिए गए प्रोग्राम में, हम जावा में String क्लास के किसी भी प्रीडिफाइंड मेथड्स का उपयोग किए बिना