关于高效排序问题

shizhu820228 2009-07-20 09:20:38
已知输入:

YAER TEAMID

1995 O

1998 0

1999 1

1997 0

2004 1

2000 1

2003 2

要求输出:

YAER TEAMID

1995 O

1997 0

1998 0

1999 1

2000 1

2004 1

2003 2

说明:
1.C#程序,非数据库,传入可以认为是DATATABLE
2.功能说明:首先按日期排序,当YEAR列有相同TEAMID时(0不考虑),找出相同的TEAMID放在一起。
3.要求重要在效率上!

请达人们帮忙解决一下!


...全文
102 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shizhu820228 2009-07-23
  • 打赏
  • 举报
回复
跟GROUP BY 无关的,其实就是算法的事。想问的就是怎么排序性能最好。
正常的做法是循环DATE,当出现TEAMID为非零0时找到所有TEAMID为这个值
的YEAR(插入到另一个DATATABLE或表中,标识出已经插入的行。)继续循环。
这种方法一定不是最好,
期待高人指点一下。
ff1222 2009-07-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shizhu820228 的回复:]
排到1999年时,因为对应的TEAMID为1,就把TEAMID为1 的 1999年,2000年,2004年排在TEAMID为2的2003年的前面了。
[/Quote]

莫非是要在datatable里实现group by?
f22fbi 2009-07-22
  • 打赏
  • 举报
回复
自己写个
北京的雾霾天 2009-07-22
  • 打赏
  • 举报
回复
哦,算我没说,不对。
北京的雾霾天 2009-07-22
  • 打赏
  • 举报
回复
先按TEAMID排,再按YAER排呢?
shizhu820228 2009-07-22
  • 打赏
  • 举报
回复
再帮忙看一下
十八道胡同 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shizhu820228 的回复:]
这样的排序是不对的,最后两条的位置是不对的。2003      2  会排在 2004      1 的前面
[/Quote]
按照你的算法描述(先按日期排),2003 2 应该在2004 1之前
我姓区不姓区 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shizhu820228 的回复:]
这样的排序是不对的,最后两条的位置是不对的。2003      2  会排在 2004      1 的前面
[/Quote]
不是先按日期排序吗?2003在2004前面怎么不对?
shizhu820228 2009-07-21
  • 打赏
  • 举报
回复
这样的排序是不对的,最后两条的位置是不对的。2003 2 会排在 2004 1 的前面
zhang17500332 2009-07-21
  • 打赏
  • 举报
回复
快速排序 递归
shizhu820228 2009-07-21
  • 打赏
  • 举报
回复
可能是我表达的不清楚,不好意思。大的是按日期排,但是如果日期对应的TEAMID出现非0的情况,就想把TEAMID相同的放在一起。
看一下我的输出:排到1999年时,因为对应的TEAMID为1,就把TEAMID为1 的 1999年,2000年,2004年排在TEAMID为2的2003年的前面了。
谢谢大家,再帮忙看看。一定结贴!
muyebo 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
使用
DataTable1.DefaultView.Sort  =  "YAER,TEAMID ASC";
[/Quote]
想问下"YAER,TEAMID ASC"是如何实现的
yeaicc 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zgke 的回复:]
使用
DataTable1.DefaultView.Sort  =  "YAER,TEAMID ASC";
[/Quote]

Update
zgke 2009-07-20
  • 打赏
  • 举报
回复
使用
DataTable1.DefaultView.Sort = "YAER,TEAMID ASC";

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧