Output
Output
#include <conio.h>
using namespace std;
class Sorting {
friend istream& operator>>(istream& in, Sorting& x);
friend ostream& operator<<(ostream& out, Sorting& x);
public:
void baca_data();
void cetak_data();
void mergeShort ();
private:
void minimum(int , int, int&);
void tukar (int&, int&);
int data[10], n;
};
istream& operator>>(istream& in, Sorting& x) {
cout << "Banyak input data : ";
in >> x.n;
for (int i = 0; i < x.n; i++) {
cout << "Data ke-" << i+1 << " : ";
in >> x.data[i];
}
return in;
}
ostream& operator<<(ostream& out, Sorting& x) {
for (int i = 0; i < x.n; i++)
out << x.data[i] << " ";
out << "\n";
return out;
}
void Sorting::tukar (int &x, int &y)
{ int temp;
temp = x;
x = y;
y = temp;
}
void Sorting::mergeShort()
{
int i, j, temp;
cout << "Data pertama disebalah kiri, angka : " << data[0] << '\n';
for(j = 1; j < n; j++)
{
temp = data[j];
cout << "\nData ke-" << j+1 << " yaitu angka " << data[j] << " diambil dari data/barisan data acak\n";
cout << "Melakukan perpindahan posisi :\n";
for(i = j - 1; (i >= 0) && (data[i] > temp); i--)
{
cout << "data pd posisi ke-[" << i+1 << "] dipindah ke posisi [" << i+2 << "]\n";
data[i+1] = data[i];
}
cout << "Data angka baru masuk ke posisi [" << i+2 << "]\n";
data[i+1] = temp; //Insert key into proper position
cout << "Data sekarang adalah : ";
for (int k=0; k<=j; k++) cout << data[k] << " ";
getch();
}
}
int main(int argc, char** argv) {
Sorting angka;
cin >> angka;
angka.mergeShort();
cout << "\nHasil akhir deret/barisan data acak adalah : \n";
cout << angka;
return 0;
}