当前位置: 首页 > 知识库问答 >
问题:

反向排序数组的sortedIndex?

裴展
2023-03-14

似乎Lodash的sortedIndex期望一个前向排序数组来进行二进制搜索。(例如[0,1,2,4])

> _.sortedIndex( [0,1,2,4], 3 )
> 3
> _.sortedIndex( [4,2,1,0], 3 )
> 4

共有1个答案

锺离晗昱
2023-03-14

SortedIndexby怎么样?

编辑:对于string比较,string.prototype.charcodeat()可以帮助您将其转换为number,然后可以应用相同的逻辑。

const arr1 = [0, 1, 2, 4];
const arr2 = [4, 2 ,1, 0];

console.log(_.sortedIndex(arr1, 3 ));
// Similar, but with ranking function.
console.log(_.sortedIndexBy(arr2, 3, function(x) {return -x;}));

const charArr = ['D','B','A'];
// Take the first char and convert to Number
let index = _.sortedIndexBy(charArr, 'C', function(x) {
  // Type checks. (If you want it to be general to many types..
  if (typeof x === 'string') {
    return -x.charCodeAt(0);
  } else if (typeof x === 'number') {
    return -x;
  } // else ... for other types.....
});

console.log('To insert char C, put it to index: ', index);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script>
 类似资料:
  • 两个反向数组合并成一个排序数组的时间复杂度是多少? 是O(n)还是O(log n)?

  • 问题内容: 我有直接列表List1。 如何更改订单。而且我不知道如何从扩展类重写方法,请编写示例或说清楚。 问题答案: 用这个:

  • 问题内容: 我使用以下行以相反的顺序对浮点数组进行排序,但出现错误消息,这是什么问题? 错误:找不到符号 符号:方法sort(float [],java.util.Comparator)位置:类java.util.Arrays Arrays.sort(sortedData,Collections.reverseOrder()); ==================================

  • 我想像下面这样对流进行反向排序,但是编译时错误为。有人能纠正这个吗

  • 我有二维数组: 我需要反转数组行并获取: 我发现算法可以反转1d数组元素: 如何反转数组行?

  • 我只是想看看我是否理解教授和在线资源所说的话。 对于heapSort算法,第一个元素的索引从0开始。 对于最大堆,如果子堆大于父堆,则percolate down应将最大子堆与其父堆交换,例如(这是用于赋值,因此我尝试发布尽可能少的代码): 所以最后,最大元素应该在索引0处。 如果这是正确的,我不理解的是heapSort实现: 最大堆中的渗滤层不应该将最大的元素放在索引0处吗?在这种情况下,为什么