Saturday, March 22, 2014

Parallel Array With BubbleSort (Wk 9) March 3-7, 2014

Q: 1. Write method to sort the two array by names.
     2. Write method to sort the two array by grades.

namespace SortingParallelArray
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] names = { "Zau", "Bob", "Sam", "Eve", "Roy", "Mack", "Jack", "Anna", "Kety" };
            int[] grades = { 99, 87, 91, 88, 77, 93, 90, 86, 95 };

            DisplayArrays(names, grades);
            Console.WriteLine("\n================================\n\n");
            BubbleSortByName(names, grades);
            DisplayArrays(names, grades);

            Console.WriteLine("\n================================\n\n");
            BubbleSortByGrade(names, grades);
            DisplayArrays(names, grades);

            Console.ReadKey();
        }
        //=======================Methods===========================
        static void DisplayArrays(string[] name, int[] grade)
        {
            Console.WriteLine("Names             Grades");
            Console.WriteLine("========================");
            for (int i = 0; i < name.Length; i++)
            {
                Console.WriteLine("{0} {1}", name[i].PadRight(15), grade[i]);
            }
        }

        //Bubble sort by name:
        static void BubbleSortByName(string[] name, int[] grade)
        {
            for (int i = name.Length - 1; i > 0; i--)
            {
                for (int j = 0; j <= i - 1; j++)
                {
                    if (name[j].CompareTo(name[j+1]) > 0)
                    {
                        string temp1 = name[j];
                        name[j] = name[j + 1];
                        name[j + 1] = temp1;

                        int temp2 = grade[j];
                        grade[j] = grade[j + 1];
                        grade[j + 1] = temp2;
                    }
                }
            }
        }
        //Bubble sort by grade:
        static void BubbleSortByGrade(string[] name, int[] grade)
        {
            for (int i = grade.Length - 1; i > 0; i--)
            {
                for (int j = 0; j <= i - 1; j++)
                {
                    if (grade[j].CompareTo(grade[j + 1]) < 0)
                    {
                        int temp1 = grade[j];
                        grade[j] = grade[j + 1];
                        grade[j + 1] = temp1;

                        string temp2 = name[j];
                        name[j] = name[j + 1];
                        name[j + 1] = temp2;
                    }
                }
            }
        }
    }
}

No comments:

Post a Comment