标签:countingsort

HQL分页sql遇到distinct时count总数不对

发表于3年前(Dec 24, 2014 10:45:17 AM)  阅读 844  评论 0

分类: Java 数据库

标签: countingsort count hql

项目中经常会有一个BaseDao,所有Dao都会继承这个BaseDao然后实现各自的Dao接口,BaseDao主要是封装了所有Dao通用的方法,其中就有分页查询。

分页查询每次会执行两个sql,首先一个sql用来统计总记录数,第二个sql才是分页查询指定数据。这是常用的一个方法,至少笔者所接触的项目基本都这么做的,至今还是没碰到过什么问题。

但如果hql语句包含distinct时,发现查询出来的记录总数不对,会大于实际记录数。

计数排序CountingSort

发表于3年前(Dec 24, 2014 10:18:15 AM)  阅读 683  评论 0

分类: Java 算法 排序

标签: countingsort 计数排序

计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。

计数排序算法的基本思想是对于给定的输入序列中的每一个元素x,确定该序列中值小于x的元素的个数。一旦有了这个信息,就可以将x直接存放到最终的输出序列的正确位置上。例如,如果输入序列中只有17个元素的值小于x的值,则x可以直接存放在输出序列的第18个位置上。当然,如果有多个元素具有相同的值时,我们不能将这些元素放在输出序列的同一个位置上,因此,上述方案还要作适当的修改。

计数排序的时间复杂度为O(n),当然是有条件的。计数排序不是原地排序。