Skip to main content

INSERTION SORT IN C++ ( PART1 OF SORTING ALGORITHMS)


//
//  main.cpp
//  Exp
//
//  Created by Manish on 07/11/19.
//  Copyright © 2019 Manish. All rights reserved.
//

#include <iostream>
#include <vector>
using namespace std;
vector<int> insertionSort(vector<int> &myVector)
{
   //left index
    int leftIndex;
    //key element
    int key;
    //loop from first index to length-1
    for(int i=1;i!=myVector.size();i++)
    {
        //store first element in inside key
        key=myVector[i];
        leftIndex=i-1;
        //swap element until left is greator than right and leftindex >=0
        while (leftIndex>=0 && myVector[leftIndex]>key) {
            
            myVector[leftIndex+1]=myVector[leftIndex];
            leftIndex=leftIndex-1;
        }
        myVector[leftIndex+1]=key;
    }
    
    return myVector;
};
int main(int argc, const char * argv[]) {
    //insertion sort would be good on very small array
    vector<int> myVector={11,21,7,3,89,15};
    //pass vector
    insertionSort(myVector);
    //print vector
    for(auto x:myVector)
    {
        cout<<x<<endl;
    }
    return 0;
}



COPY AND PASTE CODE AND RUN ON YOUR FAVOURITE ARRAY.

where should i need to use it

1. when data is really small and there is only  5 to 10 element.

2. when data is small (10-20 items) but some items already sorted.

wrose time complexity=O(N2) comparing every single item with every item
best time = O(N)

average time would be O(N)

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" : ...