// insertion.h
#ifndef _INSERTION_H_
#define _INSERTION_H_
extern int sort_data[100];
int input_data( void );
void insertion_sort( int data_len );
void output_data( int data_len );
#endif
//insertion.cpp
#include <iostream>
using namespace std;
int sort_data[100];
int input_data( void )
{
int data_num, ret, i = 0;
cout<<"How much data, please input : ";
cin >> data_num;
ret = data_num;
if( data_num < 1 ){
cout << "Invalid Input !"<< endl;
exit(0);
}
while(data_num--){
cout << "input data " << ret - data_num << ":";
cin >> sort_data[i++];
}
return ret;
}
void output_data( int data_len )
{
int i = data_len;
while( i > 0 && i-- ){
cout << sort_data[data_len - i - 1] << endl;
}
}
void insertion_sort( int data_len )
{
int i, j, key;
for( j = 1; j < data_len; j++ ){
key = sort_data[j];
i = j - 1;
while( i >= 0 && sort_data[i] > key ){
sort_data[i+1] = sort_data[i];
i--;
}
sort_data[i+1] = key;
}
}
//main.cpp
#include <iostream>
#include "insertion.h"
using namespace std;
int main(int argc, char **argv)
{
int input_len;
input_len = input_data();
insertion_sort( input_len );
output_data( input_len );
return 0;
}