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--) {
if(as[j-1] > as[j])
exchange(as+j-1,
as+j);
else break;
}
}
}
void insertionSort::print() {
for(int i = 0; i < size; i++) {
cout<<as[i]<<" ";
}
cout << endl;
}
void insertionSort::exchange(int *a1, int *b1) {
int temp;
temp = *a1;
*a1 = *b1;
*b1 = temp;
}
void main() {
int a[] = {3, 1, 4, 5, 2, 8, 6};
int size = sizeof(a) / sizeof(int);
insertionSort st(a, size);
st.sort();
st.print();
}
Comments
Post a Comment