今早凌晨写出来了下,居然都来发表博客了.后来测试发现了问题,于是删了博客.决定今天下班回来重新搞.我的严谨,真的妥协不了.
问题的关键,在于我在代码中重点标记的部分.也就是,书中给的,真不知道他是怎么想的,还是我是怎么想的呢?传递来的k值是索引,所以是从0开始的,于是左面的界 ∈ [left, i), 右面的界 ∈ (i, right).中间的是i.这是一个主要的问题.
再一个,我尝试着自始自终用一个函数解决,于是遇到了一个问题.也就是,使用三数中值分割法时数组元素个数 == 2时.经过手工模拟,添加了一个条件检测,解决了这个问题.
这个排序,去掉我出问题的部分,思想是很好的,希望我能铭刻于心,毕竟很实用,很实用.
好久没这么琢磨一段代码了,呵呵.不错啊.问题解决了,希望没有白白努力.