[大概是技术贴?]插入排序与item函数
scratch吧
全部回复
仅看楼主
level 13
☞看破◆苍穹☜
楼主
手机贴吧不方便排版,于是我就把文字放到图片里了(ಡωಡ)
2020年05月31日 12点05分
1
level 13
☞看破◆苍穹☜
楼主
我也不知道这种用item提高插入排序效率的方法有没有人想出来过,反正我是一拍脑袋想出来了(ಡωಡ)经过我粗略的测试,这种方法的时间复杂度平均值约为O(n),如果设其为O(k*n)的话,则k与数据离散程度成正比,与n成反比。另外无奖竞猜:我的新作的玩法与魔源的防御棍有关,那么请听题:新作的玩法是怎么样的(ಡωಡ)配图是我自己画的阝方 彳卸 木昆(ಡωಡ)
2020年05月31日 12点05分
2
贴吧用户_7JK33MZ
说难听点,玩法就是拿纸糊的锤子吓人吧
2020年05月31日 13点05分
☞看破◆苍穹☜
@贴吧用户_7JK33MZ
不不不你猜错了(ಡωಡ)跟其他几个武器完全无关,只和防御棍有关(ಡωಡ)
2020年05月31日 14点05分
mmjuliamulan
@☞看破◆苍穹☜
梦游者那关吧
2020年06月01日 04点06分
☞看破◆苍穹☜
@mmjuliamulan
很接近正确答案了(ಡωಡ)只不过我这个不是用反弹板来玩的,是用防御棍来玩的(ಡωಡ)基本玩法就是用一根棍子来反弹从屏幕右侧飞来的各式各样的球(ಡωಡ)
2020年06月01日 08点06分
吧务
level 15
遧傂鼝
这算是最基本的算法了吧
另外你函数定义不展示出来,和伪代码有什么区别
2020年05月31日 13点05分
3
☞看破◆苍穹☜
emmm函数忘截图了,尴尬(ಡωಡ)
原来item+插入排序是很基本的算法,我一直以为算是很高级的(ಡωಡ)
2020年05月31日 14点05分
遧傂鼝
回复 ☞看破◆苍穹☜ :我之前还以为树是很高级的呢(
2020年06月01日 12点06分
level 13
☞看破◆苍穹☜
楼主
补上函数(ಡωಡ)
大写的尴尬(ಡωಡ)
2020年05月31日 14点05分
4
level 6
雅德薇嘉🔯
前排
支持!
2020年06月01日 12点06分
5
level 8
小C数星星
只能说你的应用场景特殊。需要排序的数据是离散、范围确定且相对小的,可以用这种 搜索-插入算法 代替传统的排序算法。真正的排序算法应用的场景不仅是离散的小数列,同样可以应用到大规模的有连续值的数列(比如在一个区块中找出与目标点最近的第二个点,对点的距离排序)
一个建议:不用这个 item 函数,做一个索引变量,这样不需要每次都从最开始搜索,继续累加 索引 变量就行了,避免很多不必要的运算。
然后这里用到了很多很暴力的模块(在...前插入 和 删除第...项)……可能列表很小没什么。如果列表达到1000多项后真的会炸。至于为什么执行那么快的话,我有两个猜测:1. 反复执行同样的函数被 JS 引擎标记 hot 了,有优化一些。 2. 频繁执行暂缓了计时器。
至于为什么那两个暴力呢?它们俩执行后要把插入/删除项后面的每一项都 后移/前移。执行效率是 O(n) 。可以做另一个列表,把结果直接塞进去另一个列表,就不用这两个积木了。
最后,冒泡算法其实不是一个效率高的算法。它的执行效率是 O(n^2)
2020年06月01日 12点06分
6
level 10
聖蛋节
排行榜还能这么做
学到了
2020年06月02日 11点06分
7
level 13
☞看破◆苍穹☜
楼主
呃没错我又gun回来了,这次我优化了一下代码,速度应该会更快一些。这次我用了“2000年至现在的天数”这个模块来计算时间,排300个0~9的数字大约需要9ms(楼上某位兄台指出上次用计时器测的那个耗时要比实际值小,所以总体来说应该是变快了)。另外分辨率太低看不清的话那就打扰了(ಡωಡ)
2020年06月07日 02点06分
8
☞看破◆苍穹☜
OMG我才发现我居然多放了一个“i = 0”
2020年06月07日 02点06分
1