algorithmInJS
1.0.0
用于封装Node.js的常用算法的集合
用打字稿编写,以简单地编写平滑代码
为了实现各种更常见的算法,可以长期维护图书馆,同时也见证了JS的魅力
该图书馆仅适用于自学和讨论,请不要在生产环境中使用
该库使用MIT协议,欢迎提交拉动请求
npm i algorithminjs -D
在节点中使用
let algorithminjs = require ( 'algorithminjs' )
// import form
import algorithmInJS from 'algorithminjs'使用arrayqueue.ts阵列队列
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 )使用arraystack.ts阵列堆栈
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' )使用binarysearch.ts二进制搜索
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 )使用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 )按Countingsort.ts计数排序
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 )使用HEAP.TS堆算法实现
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 )使用节点实施。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 )使用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 )用syncpromise.ts异步逻辑同步队列算法实现
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' )使用util.ts助手功能
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 )