algorithmInJS
1.0.0
node.jsをカプセル化するための一般的に使用されるアルゴリズムのコレクション
スムーズなコードを簡単に記述するためのタイプスクリプトで書かれています
さまざまなより一般的なアルゴリズムを達成するためだけでなく、JSの魅力を目撃するために、ライブラリの長期的なメンテナンス
このライブラリは、自己学習や議論にのみ適しています。生産環境では使用しないでください
このライブラリはMITプロトコルを使用しています。ようこそ、プルリクエストを送信してください
npm i algorithminjs -D
ノードで使用
let algorithminjs = require ( 'algorithminjs' )
// import form
import algorithmInJS from 'algorithminjs'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 )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 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 )heap.ts heapアルゴリズムを使用した実装
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 )nodes.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 )