1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Windows.Forms;
  5
  6namespace ThinkWay
  7{
  8     //冒泡排序法
  9    public class PopWay
 10    {
 11        Private member declare#region Private member declare
 12
 13        private char[] Orderdata;  //要排序的字符数组
 14        private int orderLength;  //字符总长度
 15        private string beforeStr; //提供排序前的字符串接口
 16        private string afterStr;  //提供排序后的字符串接口
 17
 18        #endregion
 19
 20        public PopWay(char[] deliver,string orderStyle)
 21        {
 22            orderLength = deliver.Length;
 23            Orderdata = new char[orderLength];
 24            Orderdata = deliver;
 25            beforeOrder();
 26            switch (orderStyle)
 27            {
 28                case "asc":
 29                    startOrderAsc();  //按升序排列
 30                    break;
 31                case "desc":
 32                    startOrderDesc(); //按降序排列
 33                    break;
 34
 35            }
 36            afterOrder();
 37
 38
 39        }
 40       private  void  beforeOrder()
 41        {
 42            string infor="";
 43            for (int i = 0; i < orderLength; i++)
 44            {
 45
 46                infor += Orderdata[i].ToString () ;
 47            }
 48            beforeStr = infor;
 49
 50        }
 51        private  void startOrderAsc()
 52        {
 53            char temp;
 54                       
 55            //核心代码(升序)
 56            for (int i=0;i<orderLength ;i++)
 57                  for (int j = 0; j < orderLength - i-1; j++)
 58                  {
 59                      if (Orderdata [j].CompareTo (Orderdata [j+1])>0)
 60                      {
 61                          temp = Orderdata[j];
 62                          Orderdata[j] = Orderdata[j+ 1];
 63                          Orderdata[j + 1] = temp;
 64
 65                      } 
 66                  }
 67            
 68        }
 69        private void startOrderDesc()
 70        {
 71            char temp;
 72
 73            //核心代码(降序)
 74            for (int i = 0; i < orderLength; i++)
 75                for (int j = 0; j < orderLength - i - 1; j++)
 76                {
 77                    if (Orderdata[j].CompareTo(Orderdata[j + 1]) <0)
 78                    {
 79                        temp = Orderdata[j];
 80                        Orderdata[j] = Orderdata[j + 1];
 81                        Orderdata[j + 1] = temp;
 82
 83                    }
 84                }
 85
 86        }
 87        private void afterOrder()
 88        {
 89
 90            string infor = "";
 91            for (int i = 0; i < orderLength; i++)
 92            {
 93
 94                infor += Orderdata[i].ToString ();
 95            }
 96            afterStr = infor;
 97        }
 98        public string beforeOrderStr
 99        {
100            get{return beforeStr ;}
101            
102        }
103        public string  afterOrderStr
104        {
105            get { return afterStr; }
106           
107        }
108
109    }
110}
111网上随便搜的,仅给自己做的参考