大家来看看这个排序怎么实现。。。。 好像跟一般的排序是一样的啊,只是比较方式不同。用快速排序嘛,遇到不相关的就先放到一个list里去。这里有讲快速排序的:http://blog.csdn.net/v_JULY_v/article/details/6116297 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 快速排序的关键是要选取一个数作为中间节点,但是现在的问题是选取中间节点以后,如果碰到一个数与中间节点的比较结果是无关(即无法比较),那么他应该放在中间节点的左边还是右边,放在左边就永远没机会和右边的的elements比较了,反之也无法和左边的elements比较,非常可能存在漏比的行为 快速排序的关键是要选取一个数作为中间节点,但是现在的问题是选取中间节点以后,如果碰到一个数与中间节点的比较结果是无关(即无法比较),那么他应该放在中间节点的左边还是右边,放在左边就永远没机会和右边的的elements比较了,反之也无法和左边的elements比较,非常可能存在漏比的行为哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。 快速排序的关键是要选取一个数作为中间节点,但是现在的问题是选取中间节点以后,如果碰到一个数与中间节点的比较结果是无关(即无法比较),那么他应该放在中间节点的左边还是右边,放在左边就永远没机会和右边的的elements比较了,反之也无法和左边的elements比较,非常可能存在漏比的行为哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。没大看懂,是吧中间点和这个点的比较结果放到字典里吗,如果比完左右,都无关的话应该放在哪里呢? 快速排序的关键是要选取一个数作为中间节点,但是现在的问题是选取中间节点以后,如果碰到一个数与中间节点的比较结果是无关(即无法比较),那么他应该放在中间节点的左边还是右边,放在左边就永远没机会和右边的的elements比较了,反之也无法和左边的elements比较,非常可能存在漏比的行为哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。没大看懂,是吧中间点和这个点的比较结果放到字典里吗,如果比完左右,都无关的话应该放在哪里呢?你不是说 "如果其中一个element与其他elements都没有关系,那么他可以存在于这个list的任何地方" ? 事先要明确比较的规则。你的情况比较类似扑克牌的比较,先把能比较的分别放成一堆,比如,先按花色分成四堆(大小王不考虑)。这时候,你要有花色的比较规则,比如黑桃大于红桃。然后,再对分成的小堆中的数据进行排序。最后,组合到一块。这就是基数排序:http://www.cnblogs.com/CSharpSPF/p/3242214.html 有关WindowService安装出现的问题 关于NEW override 如何修改窗体和窗体中控件的字体大小? (新手问题)进来看看,怎么转换,在线等!! 怎样遍历Form窗体上的所有控间?? 如何设定窗口句柄不被改变 菜鸟问题 付现金求.net 程序混淆器 关于listView控件的问题.简单问题但却不会.求好心人解决! C/S程序中,服务器和客户端之间测速一般怎么实现 三层架构 C#抓取滚动新闻
哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。
这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。
哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。
这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。没大看懂,是吧中间点和这个点的比较结果放到字典里吗,如果比完左右,都无关的话应该放在哪里呢?
哦,我理解错误,以为只要比较一次,无法比较,就可以踢出去了。
这样的话,如果没有更好的办法,我认为还是可以先选择全部放到左边(或者右边),然后将中间点和这个点存到字典里,如果最后这个点比较完都不相关,再跟中间点以右(左)比较一遍,这样还是减少了一些比较次数的。没大看懂,是吧中间点和这个点的比较结果放到字典里吗,如果比完左右,都无关的话应该放在哪里呢?
你不是说 "如果其中一个element与其他elements都没有关系,那么他可以存在于这个list的任何地方" ?
你的情况比较类似扑克牌的比较,先把能比较的分别放成一堆,比如,先按花色分成四堆(大小王不考虑)。这时候,你要有花色的比较规则,比如黑桃大于红桃。然后,再对分成的小堆中的数据进行排序。最后,组合到一块。这就是基数排序:http://www.cnblogs.com/CSharpSPF/p/3242214.html