首页 > 代码库 > 冒泡排序(泛型+委托)

冒泡排序(泛型+委托)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
class Program
{

static void Main(string[] args)
{
//声明一个类
People[] arrays = new People[5];
arrays[0] = new People("p1", 3);
arrays[1] = new People("p1",321);
arrays[2] = new People("p1", 12);
arrays[3] = new People("p1", 3231);
arrays[4] = new People("p1", 21);

//调用冒泡方法
SortMethod(arrays,People.ComPare);
//输出调用后
foreach (People P in arrays)
{
Console.WriteLine(P);
}
Console.ReadKey();
}
//定义冒泡方法
static bool isChange = false;
public static void SortMethod(People[] arrays,Func<int,int,bool> compare)
{
do
{
isChange = false;
for (int i = 0; i < arrays.Length - 1; i++)
{
if (compare(arrays[i].salary,arrays[i+1].salary))
{
People temp = arrays[i];
arrays[i] = arrays[i + 1];
arrays[i + 1] = temp;
isChange = true;
}
}
}
while (isChange);
}

}
}

下面是一个PeoPle类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class People
    {
        private string name;
        public int salary;
        public People(string name, int salary)
        {
            this.name = name;
            this.salary = salary;
        }
        public static bool ComPare(int salary1, int salary2)
        {
            if (salary1 > salary2) return true;
            return false;
        }
        //重写
        public override string ToString()
        {
            return name +","+salary.ToString();
        }
    }
}

 

冒泡排序(泛型+委托)