主文件
using System;
using System.Text;
namespace _01
{
class Program
{
static void Main(string[] args)
{
TestSort();//int冒泡排序
TestComonSort();//任意类型冒泡排序
}
private static void TestSort()
{
int[] sortArray = new int[] { 123, 23, 12, 3, 345, 43, 53, 4 };
Sort(sortArray);
foreach (var temp in sortArray)
{
Console.Write(temp + " ");
}
}
private static void Sort(int[] sort)
{
for (int i = 0; i < sort.Length - 1; i++)
{
for (int j = i + 1; j < sort.Length; j++)
{
if(sort[i] > sort[j])
{
int temp = sort[i];
sort[i] = sort[j];
sort[j] = temp;
}
}
}
}
private static void TestComonSort()
{
Employee[] employees = new Employee[]{
new Employee("dsf",12),
new Employee("435dsf",234),
new Employee("234dsf",14),
new Employee("ds234f",234),
new Employee("dssfdf",90)
};
CommonSort(employees, Employee.Compare);
foreach (Employee em in employees)
{
Console.WriteLine(em.Salary);
}
Console.ReadKey();
}
/// <summary>
/// Commons the sort.
/// </summary>
/// <param name="sortArray">Sort array.</param>
/// <param name="compareMethod">Compare method.</param>
/// <typeparam name="T">The 1st type parameter.定义范型函数</typeparam>
private static void CommonSort<T>(T[] sortArray, Func<T,T,bool> compareMethod)
{
for (int i = 0; i < sortArray.Length -1; i++)
{
for (int j = i + 1; j < sortArray.Length; j++)
{
if(compareMethod(sortArray[i], sortArray[j])){
T temp = sortArray[i];
sortArray[i] = sortArray[j];
sortArray[j] = temp;
}
}
}
}
}
}
Employee类
using System;
namespace _01
{
/// <summary>
/// 雇员类
/// </summary>
public class Employee
{
public string Name { get; private set; }
public int Salary { get; private set; }
public Employee(string name, int salary)
{
this.Name = name;
this.Salary = salary;
}
public static bool Compare(Employee e1, Employee e2)
{
return (e1.Salary > e2.Salary);
}
}
}