Una colección de algoritmos de uso común para la encapsulación de nodo.js
Escrito en TypeScript para una fácil escritura de código suave
Mantenimiento a largo plazo de la biblioteca, para lograr una variedad de algoritmos más comunes, pero también para presenciar el encanto de JS
Esta biblioteca solo es adecuada para el autoapremento y la discusión, por favor no use en el entorno de producción.
Esta biblioteca utiliza el protocolo MIT, bienvenido para enviar una solicitud de extracción
npm i algorithminjs -D
Utilizado en el nodo
let algorithminjs = require ( 'algorithminjs' )
// import form
import algorithmInJS from 'algorithminjs'Uso de Arrayqueue.ts Array Queue
let { ArrayQueue } = require ( '../index' )
let arrayQueue = new ArrayQueue ( 8 )
//enqueue
console . log ( 'enqueue::' , arrayQueue . enqueue ( 'a' ) )
console . log ( 'arrayQueue:' , arrayQueue )
console . log ( 'enqueue::' , arrayQueue . enqueue ( 'b' ) )
console . log ( 'arrayQueue:' , arrayQueue )
// dequeue
console . log ( 'dequeue:' , arrayQueue . dequeue ( ) )
console . log ( 'dequeue show :' , arrayQueue )Uso de ArrayStack.ts Array Stack
let { ArrayStack } = require ( '../index' )
let arrayStack = new ArrayStack ( 5 )
console . log ( arrayStack . push ( 4 ) )
console . log ( arrayStack . items )
expect ( arrayStack . items ) . to . be . a ( 'array' )Uso de BinarySearch.TS Binary Search
let { BinarySearch } = require ( '../index' )
let a = [ 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ] . reverse ( )
let n = a . length
let val = 8
let bs = new BinarySearch ( )
console . log ( 'bs' , bs )
let result = bs . bsearchInternally ( a , 0 , n - 1 , val )
console . log ( 'result:' , result )Usando la cola de bucle Circlequeue.ts
let { CircleQueue } = require ( '../index' )
let circleQueue = new CircleQueue ( 8 )
console . log ( 'circleQueue:' , circleQueue . enqueue ( 'jame' ) )
console . log ( 'circleQueue:' , circleQueue . enqueue ( 'tom' ) )
console . log ( 'circleQueue:' , circleQueue . enqueue ( 'jerry' ) )
console . log ( 'circleQueue:' , circleQueue )Clasificación por countingsort.ts Count
let { CountingSort } = require ( '../index' )
// let mergeSort = new MergeSort()
var a = [ 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ]
var n = a . length
Console . time ( 'countingSort' )
CountingSort . countingSort ( a , n )
// quickSort.mergeSortInternally(a, 0)
console . timeEnd ( 'countingSort' )
console . log ( 'array:' , a )Implementación utilizando el algoritmo Heap.ts Heap
Algoritmo de clasificación de fusión de mergesort.ts
let { MergeSort } = require ( '../index' )
// let mergeSort = new MergeSort()
var a = [ 1 , 23 , 45 , 56 , 2 , 3 , 34 , 22 ]
var n = a . length
Console . time ( 'mergeSort' )
var mergeSort = new MergeSort ( a , n )
mergeSort . mergeSortInternally ( a , 0 )
console . timeEnd ( 'mergeSort' )
console . log ( 'array:' , a )Implementado usando el algoritmo de nodo de árbol binario de nodos.ts
let { Nodes } = require ( '../index' )
var node1 = new Nodes ( 5 )
Node1 . insert ( 2 )
Node1 . insert ( 4 )
console . log ( node1 )
// delete
Console . time ( 'delete' )
Node1 . delete ( 3 )
console . timeEnd ( 'delete' )
console . log ( 'deleted::' , node1 )Implementado utilizando el algoritmo de clasificación rápida de Quicksort.ts
let { QuickSort } = require ( '../index' )
// let mergeSort = new MergeSort()
var a = [ 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ]
var n = a . length
Console . time ( 'mergeSort' )
var quickSort = new QuickSort ( a , n )
// quickSort.mergeSortInternally(a, 0)
console . timeEnd ( 'mergeSort' )
console . log ( 'array:' , a )Implementado con syncpromise.ts algoritmo de cola sincrónica asincrónica
let { SyncPromise } = require ( '../index' )
let syncPromise = new SyncPromise ( )
console . log ( syncPromise )
let self = this
Const a = ( option ) => {
Return new Promise ( ( resolve , reject ) => {
console . log ( option )
Resolve ( option )
}
)
}
let ids = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
Function method ( option ) {
Return ( callback ) = > {
a ( option ) . then ( data => {
Callback ( null , data )
} )
}
}
let arrayOfCallback = ids . map ( id => {
Return method ( id )
} )
syncPromise . seriesOfArray ( arrayOfCallback )
expect ( arrayOfCallback ) . to . be . a ( 'array' )Usando la función Util.ts Helper
let { Util } = require ( '../index' )
let testUrl = 'https://translate.google.com/?view=home&op=translate&sl=en&tl=zh-CN&text=what%20i%20want%20to%20do%20is%20that'
let getJSON = Util . url2json ( testUrl )
console . log ( "getJSON:" , getJSON )
expect ( getJSON ) . to . be . a ( 'object' ) let { Util } = require ( '../index' )
let testObj = {
View : 'home' ,
Op : 'translate' ,
Sl : 'en' ,
Tl : 'zh-CN' ,
Text : 'what i want to do is that'
}
let getUrl = Util . json2url ( testObj )
console . log ( 'getUrl::' , getUrl )