小编use*_*178的帖子

将值插入到已排序的数组中

在已排序的 numpy 数组中将值插入正确位置的最快方法是什么?

例如,我想插入binto 的每个值a:

a = [1,1,2,4,7,7,11,13,13,13,15,20,25,26,27,30,45,70]

b = [5,7,9,45]
Run Code Online (Sandbox Code Playgroud)

我试过遍历a每个值b并以这种方式插入。我也试过bisect_left方法:

for i in b:
a.insert(bisect_left(a,i),i)
Run Code Online (Sandbox Code Playgroud)

这两种方法都太慢了,因为我要处理数十万个数据元素。

有任何想法吗?

python sorting algorithm list insert

5
推荐指数
2
解决办法
5584
查看次数

二分查找多个值

你好,我有一个与Python相关的问题,

我有一个排序的 Numpy 数组,我必须快速找到某些值的索引,到目前为止我一直在使用二分搜索,但我遇到的问题是有许多相同值的条目,我必须找到索引所有的值。有没有办法修改二分搜索来找到所有?
当前代码是

def binarySearch(alist,item,con_array,element):
    if len(alist) == 0:
        return False
    else:
        midpoint = len(alist)//2
        if alist[midpoint]==item:            
            for l in range(len(alist)):
                if alist[l] == item:
                    n_array.append(con_array[l])
            return True                   
        else:
            if item<alist[midpoint]:
                return binarySearch(alist[:midpoint],item,con_array[:midpoint],i)
            else:
                return binarySearch(alist[midpoint+1:],item,con_array[midpoint+1:],i) 
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我尝试通过简单地搜索缩短的数组来合并它,但这仍然删除了一些值

python binary search numpy binary-search-tree

1
推荐指数
1
解决办法
2796
查看次数

标签 统计

python ×2

algorithm ×1

binary ×1

binary-search-tree ×1

insert ×1

list ×1

numpy ×1

search ×1

sorting ×1