回复:一种快速排序的实现方法

已锁定

lu_zhao_long

  • 帖子

    559
  • 精华

    9
  • 被关注

    34

论坛等级:侠圣

注册时间:2004-09-17

钻石 钻石 如何晋级?

发布于 2024-06-21 18:41:54

5楼

谢谢楼主分享,学习了!

不过我有个疑问,也不道我理解的对不对:

假设 #DataArray 有 100 个元素,刚好 只有 #DataArray[99] < #DataArray[98] < #DataArray[0],其它 #DataArray[0] ~ #DataArray[97] 都是从小到大排序好了。正确的排序应该是 #DataArray[99] < #DataArray[98] < #DataArray[0] ~ #DataArray[97]。

那么,按照你的程序,当执行到 第 11 行时,#_iLeftCount = 2, #_iRightCount = 97

可是,执行完成第 12 行 到 14 行后,#DataArray[0] 却与 #DataArray[2] 进行了位置交换。这不是打乱已经排好的顺序了吗?

紧接着第 16 到 20 行又对刚才打乱的 原 #DataArray[1] 和 DataArray[2] 进行排序,变得更乱了!

而且,按照分成前后两段进行排序的方法,最终应该怎么也不能把 #DataArray[99] 这个元素排到最左面吧?!


若我的理解是正确的,那么你的 #_LeftCount 不应该是统计数量,而是应该记录最后一个小于 #_iSelectedValve 的位置吧?

深陷于此,我是来“喝水”的! lu_zhao_long@139.com
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11148条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。