Forwarded from dnaugsuz
我写了个选择排序,可能是排序时列表本身长度也在变化吧,然后就一直 debug 了快一个小时....
Forwarded from dnaugsuz
始终没有“It works for the first time”,从来没有成功过,一直是莫名其妙的问题... 后来才知道是排序时我 delete_at 改变了表长,然后我加了个 delta 监控表长差再写了一次... 才解决
Forwarded from dnaugsuz
我使用的 pop_biggest! 方法还是基于 Ruby 的 Enumerable#max 方法定义的
Forwarded from dnaugsuz
pry -r ./Projects/psort.rb
ary = OrderedArray.new [1, 9, 3, 4, 2, 10, -1]
ary.pin(6, 0)
ary.csort()
Forwarded from dnaugsuz
我感觉还是不够,还缺少什么,实际上 pin 方法里我用 delete_at 了,又行不通,会导致索引错位...
Forwarded from dnaugsuz
不会啊?
b ; fixed 0
a
c
d
然后插入
b ; fixed 0
a
d ; fixed 2
c
a 的优先级依然比 c 高,我是这个意思
可以理解为一个高级版的 pin,原先那个 pin 专门设立了一个“特殊归类”来自动排序并把结果加到实际渲染的列表里
这个就是 pin + 位置而已
b ; fixed 0
a
c
d
然后插入
b ; fixed 0
a
d ; fixed 2
c
a 的优先级依然比 c 高,我是这个意思
可以理解为一个高级版的 pin,原先那个 pin 专门设立了一个“特殊归类”来自动排序并把结果加到实际渲染的列表里
这个就是 pin + 位置而已
Forwarded from dnaugsuz
https://t.iss.one/purewriter/35208
https://t.iss.one/purewriter/35223
感觉 drakeet 没有意识到可以这么做的原因是他站的层次太高了,他没有意识到最终交给视图渲染的列表本身可以是无序列表(列表当然是有序的,但是可以分无序列表和有序列表)
他只关注有什么「库提供的」排序算法参考的标准(比如优先级),所以他认为排序必须要有优先级才行,而没有意识到排序本身只是算法进行的操作而已,即使让算法随便乱排序又如何?
https://t.iss.one/purewriter/35223
感觉 drakeet 没有意识到可以这么做的原因是他站的层次太高了,他没有意识到最终交给视图渲染的列表本身可以是无序列表(列表当然是有序的,但是可以分无序列表和有序列表)
他只关注有什么「库提供的」排序算法参考的标准(比如优先级),所以他认为排序必须要有优先级才行,而没有意识到排序本身只是算法进行的操作而已,即使让算法随便乱排序又如何?
Telegram
drakeet in PureWriter's Friends
就是提供一个菜单让用户选择是否手动排序,如果勾选,则按照所有已有排序,给文章全部标上优先级
Forwarded from dnaugsuz
始终没有理解我的意思,我的意思是让他先把结果列表里固定好「固定位置」的项目
然后再对剩下的位置选择排序
然后再对剩下的位置选择排序
Forwarded from dnaugsuz
go 里面实现 Sorter 要三个方法:Len、Swap、Less,我觉得 drakeet 还需要学习一下这类知识,比如学习 C++
其实真正需要的只有一个方法:比较相邻项目大小的方法 cmp,在 Ruby 里叫
其实真正需要的只有一个方法:比较相邻项目大小的方法 cmp,在 Ruby 里叫
<=> 也被称为 'spaceship'(1..10).sort { |a, b| b <=> a } #=> [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]