Mega Code Archive

 
Categories / C# / Collections Data Structure
 

Bubble sort

using System;   delegate bool Comparator(object lhs, object rhs);   class MainEntryPoint {     static void Main() {       Employee [] employees = {               new Employee("A", 20000),               new Employee("B", 10000),               new Employee("C", 25000),               new Employee("D", 99999),               new Employee("E", 23000),               new Employee("F", 50000)};                      BubbleSorter.Sort(employees, new Comparator(Employee.IsGreater));       for (int i=0 ; i<employees.Length ; i++){         Console.WriteLine(employees[i].ToString());       }       }   }   class Employee {     private string name;     private decimal salary;     public Employee(string name, decimal salary)     {       this.name = name;       this.salary = salary;     }     public override string ToString()     {       return string.Format(name + ", {0:C}", salary);     }     public static bool IsGreater(object a, object b)     {       Employee empA = (Employee) a;       Employee empB = (Employee) b;       return (empA.salary > empB.salary) ? true : false;     }   }   class BubbleSorter   {     static public void Sort(object [] sortArray, Comparator gtMethod) {       for (int i=0 ; i<sortArray.Length ; i++) {         for (int j=i+1 ; j<sortArray.Length ; j++) {           if (gtMethod(sortArray[j], sortArray[i])) {             object temp = sortArray[i];             sortArray[i] = sortArray[j];             sortArray[j] = temp;           }         }       }     }   }