Skip to main content

quicksort in typescript a quick example how to implement quicksort

working link



//quicksort implementation in typescript


class Quicksort
{
//pass arry
static sort( arry:Array<number>)
{
//get start index
let start=0;
//get end index which is one less tahn total length
let end=arry.length-1;
//pass arry with start and end index to the function quickSort
this.quickSort(arry,start,end);


}
static quickSort(arry:Array<number>,start:number,end:number)
{
//do sorting using divide and conquer
if(start<end)
{
//get a pivot index
let pindex=this.getPivotIndex(arry,start,end);
this.quickSort(arry,start,pindex-1);
this.quickSort(arry,pindex+1,end);
}
}
//swap element
static swap(arry:Array<number>,start:number,index:number)
{
let temp=arry[start];
arry[start]=arry[index];
arry[index]=temp;
}
static getPivotIndex(arry:Array<number>,start:number,end:number):number
{
let pivot=arry[end];
let pindex=start;
for(let i=start;i<end;i++)
{
if(arry[i]<=pivot)
{
this.swap(arry,i,pindex)
pindex+=1;
}


}
this.swap(arry,pindex,end);
return pindex;
}
}


var arry=[];


for(var i=0;i<25;i++)
{
arry.push(Math.round(Math.random()*100));
}


console.time()
Quicksort.sort(arry);


console.log(arry);
console.timeEnd()

Comments

Popular posts from this blog

Better Memory management with PixiJS or How to manage cpu and cpu memory in PixiJS.

PixiJS is my favorite framework when i am looking for a web games specially for mobile or desktop  PixiJS is fast blazing fast and you can get a decent FPS even on older device.   so here is my optimization techniques for PixiJs 1. manage your sprites in a better way use spritesheet to reduce the draw calls create big sprite sheet which contain multiple sprites can be draw in gpu with a single draw call. use TexturePacker  https://www.codeandweb.com/texturepacker  best tool when its comes to spritesheet 2. for floating point calculation round off calculation for example let  speed = 0.75 ; let  position = 100 ; console . log ( Math . round ( speed * position )) 3. don't create very big canvas when u need a big canvas size game just try to create a small canvas and translate it. 4. its very important one managing TextureCache in memory you can get all TextureCache list by using  Object.entries(PIXI.utils.TextureCache); so even you use ap...

adding particles Effect in pixijs using https://pixijs.io/pixi-particles-editor/

adding particle in pixijs is very easy using the below tool more information can be found below https://github.com/pixijs/pixi-particles https://pixijs.io/pixi-particles-editor/ required packages  /// < reference path = "node_modules/pixi-particles/ambient.d.ts" /> import 'pixi-particles' code of particle delcare a     global variable   private emitter ?: Emitter ; const img = PIXI . Texture . from ( "./assets/images/particle.png" ); this . emitter = new Emitter ( this ,[ img ],{ "alpha" : { "start" : 0.62 , "end" : 0.39 }, "scale" : { "start" : 0.1 , "end" : 0.9 , "minimumScaleMultiplier" : 1.25 }, "color" : { "start" : "#ffff8f" , "end" : ...