Friday, July 12, 2013

Algorithm : Removing duplicates from array without using any other array or list.


static void Main(string[] args)
        {
            int[] array = new int[] { 0, 1, 2, 2, 5 };
            int numDups = 0;
            int temp = 0;
            for (int i = 0; i < array.Length; i++)
            {

                for (int j = 0; j < i; j++)
                {
                    if (array[i] == array[j])
                    {
                        array[i] = int.MaxValue;
                        temp++;
                        break;
                    }
                }
            }

            // Sort array so that we can resize and decard extra elements.
            for (int i = 0; i < array.Length; i++)
            {
                for (int j = i; j < array.Length; j++)
                {
                    if (array[i] >= array[j])
                    {
                        numDups = array[i];
                        array[i] = array[j];
                        array[j] = numDups;
                    }
                }
            }

            Array.Resize(ref array, array.Length - temp);

            Console.WriteLine(string.Concat(array));
            Console.ReadKey();
        }

Output:
0125

No comments:

Post a Comment