Posts

Showing posts with the label Basic algorithm

selection sort

/*** selection sort: O(n2) find the min on the right part and exchange ***/ #include <iostream> using namespace std; class selectionSort { public :        selectionSort( int *a, int sz);        ~selectionSort() { }        void sort();        void print(); private :        int *as;        int size;        void exchange( int *a1, int *b1);        int getmin( int begin, int end); }; selectionSort::selectionSort( int *a, int sz):as(a), size(sz) { } void selectionSort::sort() {        int pos;        for ( int i = 0; i < size; i++) {               pos...

insertion sort

/*** insertion sort ***/ #include <iostream> using namespace std; class insertionSort { public :        insertionSort( int *a, int sz);        ~insertionSort() { }        void sort();        void print(); private :        void exchange( int *a1, int *b1);        int *as;        int size;     }; insertionSort::insertionSort( int *a, int sz):as(a), size(sz) { } void insertionSort::sort() {        for ( int i = 0; i < size; i++) {               for ( int j = i; j > 0; j--) {                    ...

quick sort

/*** Quick Sort ***/ #include <iostream> using namespace std; class quickSort { public :        quickSort( int *a, int sz);        ~quickSort() { }        void sort( int begin, int end);        void print(); private :        int *sa;        int size;        int partition( int begin, int end);        void exchange( int *a1, int *b1); }; quickSort::quickSort( int *a, int sz) {        sa = a;        size = sz; } void quickSort::exchange( int *a1, int *b1) {        int temp;        temp = *a1;        *a1 = *b1;  ...

Merge Sort

/*** Merge Sort: using linked list.. ***/ #include <iostream> #include <algorithm> using namespace std; class mergeSort { public :        mergeSort( int *a, int sz);        ~mergeSort();        void msort( int begin, int end);        void print(); private :        int *as;        int *aux;        int size;        void merge( int begin, int mid, int end); }; mergeSort ::mergeSort( int * a , int sz ):as( a ), size( sz ) {        aux = new int [size]; } mergeSort ::~mergeSort() {        delete [] aux; } void mergeSort ::print(){        for ( int i = 0; i<size; i++)...