一副牌按花色排序由大到小为:黑桃,红桃,梅花,方块。为了便于从A-K排序,定义黑桃至方块分别由数字4至1代表。如黑桃2用数字代表为402,红桃2为302,梅花2为202,方块2为102。如果用排序的方法显示的顺序为
黑桃402,红桃302,梅花202,方块102。我现想让红色的牌在一起,黑色的牌在一起,即黑桃402,梅花202,红桃302,方块102。应如何排序?谢谢!
黑桃402,红桃302,梅花202,方块102。我现想让红色的牌在一起,黑色的牌在一起,即黑桃402,梅花202,红桃302,方块102。应如何排序?谢谢!
解决方案 »
- 急,大家进来看看,这种word文件里面数据怎么导入到数据库中
- c# winFrom dataGridView问题
- help: C# directx 开发 帮助文档
- 一些非常好用的控件.Cell ,OutlookBar, RichTextBox ,shape, RMaskedTextBox
- 请教用c#能否打开paradox这样的数据库?
- 非托管资源释放
- 有大量数据时DataGridView是该邦定数据源还是不邦定 希望高手指点 谢谢了(在线等待)
- .net的这个对象没有被回收吗?
- listView1的疑惑?(高手指点)
- ArrayList中取值的问题
- 加密狗?
- 请教关于.net调用 xml-rpc 的一些问题。求教第一步。
public class SortComparer : IComparer
{
int IComparer.Compare(Object x, Object y)
{
int _X = int.Parse(x.ToString().Substring(0, 1));
int _Y = int.Parse(y.ToString().Substring(0, 1)); if (_X == _Y) return 0; if (_X == 2 && _Y == 3) return -1;
if (_X == 3 && _Y == 2) return 1; if (_X > _Y)return -1;
return 1;
}
}这样...方法笨了点
或者一个自定义排序保证4后面是2,然后是3,1也行。
X代表数字402
order by x/100%2,x/100 desc,x
这样顺序就是402,403,202,302,102了
int[] a=new int[13] {402,202,102,302,207,307,408,106,209,305,405,205,109};
int p,m;
for (int i = 0; i < 13; i++)
{
for (m = i, j = i + 1; j < 13; j++) if (a[m] % 100 > a[j] % 100)
m = j;
if (m != i)
{
p = a[i];
a[i] = a[m];
a[m] = p;
} }for (int i = 0; i < 13; i++)
{
for (m = i, j = i + 1; j < 13; j++) if (a[m] % 100 == a[j] % 100 && a[m] /100%2 > a[j] /100%2 )
m = j;
if (m != i)
{
p = a[i];
a[i] = a[m];
a[m] = p;
} }
这样才将它们排在一起,有没效率高些的解法?