冒泡排序

   冒泡一: 将一个字符串数组按照冒泡排序的方式进行排序

public static int[] GetBubbbleSort( int[] ArrayList) 2 { 3 for (int i = 0; i < ArrayList.Length-1; i++) 4 { 5 for (int j = 0; j < ArrayList.Length-i-1; j++) 6 { 7 int temp; 8 //大于为从小到大,小于为从大到小 9 if (ArrayList[j]>ArrayList[j+1]) 10 { 11 temp = ArrayList[j]; 12 ArrayList[j] = ArrayList[j + 1]; 13 ArrayList[j+1] = temp; 14 } 15 } 16 } 17 return ArrayList; 18 }
冒泡 排序二:
   public static int[] BubbleSotr(int[] ArrayList)
        {
            bool bubble = true;
            do
            {
                bubble = false;
                for (int i = 0; i < ArrayList.Length-1; i++)
                {
                    if (ArrayList[i]>ArrayList[i+1])
                    {
                        ArrayList[i] = ArrayList[i] + ArrayList[i + 1];
                        ArrayList[i + 1] = ArrayList[i] - ArrayList[i + 1];
                        ArrayList[i]=ArrayList[i]-ArrayList[i+1];
  bubble = true; } } } while (bubble==true); return ArrayList; } //Bubble冒泡排序的第一种方式

  冒泡排序三:


    public static void Sort<T>(IList<T> arrayList, Func<T, T, bool> compareration)
        {
            bool bubble = true;
            do
            {
                bubble = false;
                for (int i = 0; i < arrayList.Count - 1; i++)
                {
                  //传递一个与compareration一样的方法
                    if (compareration(arrayList[i], arrayList[i + 1]))
                    {
                        T atemp;
                        atemp = arrayList[i];
                        arrayList[i] = arrayList[i+1];
                        arrayList[i+1] = atemp;
                        bubble = true;
                    }
                }

            } while (bubble == true);

        }

Emploee类
public
class Emploee { public String Name { get; set; } public int Salary { get; set; } public Emploee(string name,int salary) { this.Name = name; this.Salary = salary; } public override string ToString() { return string.Format("Name:{0},Salary:{1}",Name,Salary); } public static bool MyCompareFuction(Emploee e1,Emploee e2) { return e1.Salary>e2.Salary; } }

 

主函数:实现排序;
 class Program
    {
        static void Main(string[] args)
        {
            Emploee[] emploee = {
            new Emploee("张三",5000),
            new Emploee("李四",3000),
            new Emploee("王五",4500),
            new Emploee("赵六",3333)
         };
           Bubble.Sort<Emploee>(emploee,Emploee.MyCompareFuction);
           foreach (var item in emploee)
           {
               Console.WriteLine(item);
           }
           Console.ReadKey();
         
        }
    }

 








 

posted @ 2018-11-11 19:23  冰淇淋的时光  阅读(249)  评论(0编辑  收藏  举报