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网上随便搜的,仅给自己做的参考
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货