Utility for searching and inserting elements in a sorted array using a binary algorithm
npm install @barudakrosul/bisectbisect di Python.
shell
npm install @barudakrosul/bisect
`
Penggunaan
Untuk memulai menggunakan Bisect-JS, import modulnya terlebih dahulu:
1\. CommonJS
`javascript
const bisect = require("@barudakrosul/bisect");
`
2\. ESM (ECMAScript Modules)
`javascript
import bisect from "@barudakrosul/bisect";
`
Contoh penggunaan:
1\. Penggunaan fungsi bisectRight(a, x, lo=0, hi=null, key=null)
Mengembalikan indeks tempat di mana elemen x harus dimasukkan ke dalam array a yang sudah terurut. Semua elemen di sebelah kiri indeks tersebut lebih kecil dari atau sama dengan x, dan semua elemen di sebelah kanannya lebih besar dari x.
`javascript
let arr = [1, 3, 4, 7];
let idx = bisectRight(arr, 5); // idx = 3
`
Contoh lain:
`javascript
let scores = [60, 70, 80, 90];
let grade = ['F', 'D', 'C', 'B', 'A'];
let idx = bisect(scores, 85); // idx = 3
console.log(grade[idx]); // B
`
2\. Penggunaan fungsi bisectLeft(a, x, lo=0, hi=null, key=null)
Mirip dengan fungsi bisectRight, namun mengembalikan indeks di mana x dapat disisipkan sehingga semua elemen di kiri indeks lebih kecil dari x, dan semua elemen di kanan lebih besar atau sama dengan x.
`javascript
let arr = [1, 3, 4, 7];
let idx = bisectLeft(arr, 5); // idx = 3
`
3\. Penggunaan fungsi insortRight(a, x, lo=0, hi=null, key=null)
Menyisipkan elemen x ke dalam array a yang sudah terurut menggunakan bisectRight. Jika x sudah ada di array, maka elemen baru akan disisipkan setelah elemen yang serupa.
`javascript
let arr = [1, 3, 4, 7];
insortRight(arr, 5);
console.log(arr); // [1, 3, 4, 5, 7]
`
Contoh lain:
`javascript
let items = [{'name': 'apple', 'price': 10}, {'name': 'banana', 'price': 5}];
insortRight(items, {'name': 'cherry', 'price': 7});
console.log(items); // [{'name': 'apple', 'price': 10}, {'name': 'banana', 'price': 5}, {'name': 'cherry', 'price': 7}]
`
4\. Penggunaan fungsi insortLeft(a, x, lo=0, hi=null, key=null)
Menyisipkan elemen x ke dalam array a yang sudah terurut menggunakan bisectLeft. Jika x sudah ada di array, elemen baru akan disisipkan sebelum elemen yang serupa.
`javascript
let arr = [1, 3, 4, 4, 6];
insortLeft(arr, 4);
console.log(arr); // [1, 3, 4, 4, 4, 6]
``