首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据库篇

    首先直接排序肯定是不行的,比如192.168.204.12这个地址,存储在mongodb肯定是字符串的形式,然后字符串排序的话,对于开头的192,如果再来一个21开头的ip地址,21就比192大了,肯定不行。字符串排序也正是这样。我首先想到的是,直接查出来,然后用过java对字符串进行split然后转为int排序。但是这个方案很快就被我否决了。为什么?因为,mongodb在查询的时候用到了分页查询,那么查询的时候,就得全部查询出来,这样耗时非常的大。所以,只能在mongodb里面排序好了之后再次查询出来。好像是一个无解的问题。其实,思维扩散开了也就简单了,很简单加一个字段就行了。其实加字段也是有讲究的。这里加上一个long字段,然后在插入的时候,直接每一位数不足补0,比如上面的ip就是192168204120这样,这时查询的时候,直接根据long字段sort就可以了。

    01

    字符串排序----高位优先的字符串排序

    上一篇:低位优先的字符串排序 高位优先字符串排序是一种递归算法,它从左到右遍历字符串的字符进行排序。和快速排序一样,高位优先字符串排序算法会将数组切分为能够独立进行排序的子数组进行排序,但它的切分会为每个首字母得到一个子数组,而非像快排那样产生固定的两个或三个数组。 本算法也是基于键索引记数法来实现的。该算法的核心思想是先使用键索引记数法根据首字符划分成不同的子数组,然后递归地处理子数组,用下一个字符作为键索引记数法的键处理子数组。 因为是不同长度的字符串,所以要关注字符串末尾的处理情况。合理的做法是将所有

    01
    领券