1. 程式人生 > >氣泡排序的拓展方法

氣泡排序的拓展方法

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


namespace 氣泡排序的重複記憶
{
    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)
        {
            if (e1.Salary > e2.Salary) return true;
            return false;
        }
    }

}



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


namespace 氣泡排序的重複記憶
{
    class Program
    {
        static void CommonSort<T>(T[]sortArray,Func<T,T,bool> co)
        {
            bool swapped = true;
            do
            {
                swapped = false;
                for (int i = 0; i < sortArray.Length - 1; i++)
                {
                    if (co(sortArray[i] ,sortArray[i + 1]))
                    {
                        T temp = sortArray[i];
                        sortArray[i] = sortArray[i + 1];
                        sortArray[i + 1] = temp;
                        swapped = true;
                    }
                }
            } while (swapped);


        }
        static void Main(string[] args)
        {
        }
    }

}

通過委託實現泛型類的氣泡排序。

視訊見嗶哩嗶哩siki老師的c#程式設計 高階篇《拓展的通用的氣泡排序方法》