Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,931 questions

51,868 answers

573 users

How to sort an array of 0, 1 and 2 values with while loop and switch in C#

1 Answer

0 votes
using System;

class Program
{
    static int swap(int a, int b) {
       return a;
    }
    
    static void sort(int[] arr) { 
        int start = 0; 
        int end = arr.Length - 1; 
        int mid = 0;
          
        while (mid <= end) { 
            switch (arr[mid]) { 
                case 0: { 
                    arr[start] = swap(arr[mid], arr[mid] = arr[start]);
                    
                    start++; 
                    mid++; 
                    break; 
                } 
                case 1: {
                    mid++; 
                    break;
                }
                case 2: { 
                    arr[mid] = swap(arr[end], arr[end] = arr[mid]);
                    end--; 
                    break; 
                } 
            } 
        } 
    } 
  
    static void Main()
    {
        int[] arr = {2, 1, 0, 0, 1, 2, 2, 1, 1, 2}; 
        
        sort(arr); 

        for (int i = 0; i < arr.Length; i++) 
            Console.Write(arr[i] + " "); 
    }
}



/*
run:

0 0 1 1 1 1 2 2 2 2 

*/

 



answered Apr 30, 2019 by avibootz
...