天天看点

相对有序排序算法

使用场景:

当需要对一批数据进行逐个筛选,并将筛选后的数据存入一个容器中,当取出来进行第二次操作时,需要取出的数据是按一定的规则排序的时候。

drools加载并执行规则的时候,会去创建执行网络(Rete算法),用的排序方式就是这个算法。

效率比较:

例如,我们要处理的数据量为10,使用快速排序的方式:

我们发现最坏的这种情况需要循环45次,而是用相对有序排序算法只要需要29次,而且,相对有序的算法的优势不仅如此,传统的排序不管是什么情况都需要循环那么多次,而相对有序的算法在是乐观的,很多时候循环的次数是不需要29次的,例如数据本来就是有序的,那么只需要循环12次,而传统排序还是45次。

继续阅读