簡體   English   中英

在Javascript中在一維數組中查找最小值和最大值之間的值

[英]Finding values between min and max in 1d array in Javascript

我有一個帶有值的數組,我需要找到最小和最大之間的所有值。 我相信我需要構建某種搜索樹,對嗎? 我想要類似的東西:

var values : number[] = tree.findBetween(min : number, max: number);

搜索的性能是主要標准。

另外,構造樹后,無需更改樹(添加/刪除值)。

我需要什么? 二叉樹? 平衡的搜索樹? 靜態搜索樹?

我從哪里開始?

感謝@bergi的回答,我真的不需要構造搜索樹就可以對排序后的數組執行二進制搜索,因此我應該能夠找到我的值並獲取它們之間的數組部分。

出於好奇,我發現了一篇有趣的文章,比較了二進制搜索和普通搜索的性能-遍歷數組。 文章以某種方式錯誤地包括了將數組排序到搜索時間中的時間-僅當您具有排序后的數組(如果可以在性能關鍵時期之前對其進行預排序)時,才應使用二進制搜索。 我運行的代碼最多包含1e7個項目,對排序數組的二進制搜索需要0毫秒,而簡單循環數組需要數十毫秒。

最后,這是我能找到的最快的二進制搜索實現。 https://oli.me.uk/2014/12/17/revisiting-searching-javascript-arrays-with-a-binary-search/

感謝大家的幫助。

哦,對不起,我的Globish有時會騙我。 否則,對於這樣的問題,我在困難處看不到太多,但這總是一個新的答案(希望這次我不會在盤子旁邊)

除此之外: 還有什么比本地js方法更快的速度?

 const MaxValue = 50, MinValue = 10 ; let ArrayOrigin = [12, 5, 8, 130, 44, 25, 14, 42, 36 ], ArrayInLimits = ArrayOrigin.filter( elm=> elm>MinValue && elm<MaxValue) ; console.log( ...ArrayInLimits ); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM