From db31f20d24c34870bfe9a2f59288ec1dfe32a5c0 Mon Sep 17 00:00:00 2001 From: rhpidfyre Date: Tue, 25 Feb 2025 19:03:10 -0500 Subject: [PATCH] `binary_nsort` for no automatic sorting --- src/rt/shell/fs/search.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/rt/shell/fs/search.ts b/src/rt/shell/fs/search.ts index d032d81..92a53c0 100644 --- a/src/rt/shell/fs/search.ts +++ b/src/rt/shell/fs/search.ts @@ -1,5 +1,6 @@ interface Search { binary: (list: T[], find: T) => T | undefined, + binary_nsort: (list: T[], find: T, start: number, end: number) => T | undefined; linear: (list: T[], find: T) => T | undefined, } const search = {} as Search @@ -12,15 +13,22 @@ search.binary = function(list, find) { const median = (start+end)>>1 if (list[median] === find) { return find - } else if (list[median]end) { return } + const median = (start+end)>>1 + if (list[median] === find) { return list[median] } + if (list[median]>find) { + return this.binary_nsort(list, find, start, median-1) + } else { + return this.binary_nsort(list, find, median+1, end) + } +} + search.linear = function(list, find) { for (const item of list) { if (item === find) {