Algoritma Selection Sort Ascending dan Descending pada Cpp/C++ | C++ Tutorial



Selection sort adalah salah satu metode pengurutan data dengan pengurutan berdasarkan data terkecil(minimum) atau data terbesar(maksimum) nya.

Tanpa berlama-lama lagi, langsung saja berikut adalah algoritma selection sort berdasarkan vi-gaming:

1. Minimum Selection Sort Ascending

Minimum Selection Sort Ascending adalah metode pengurutan dengan mencari nilai terkecilnya dahulu, kemudian diletakkan di indeks terdepan. Sehingga urutannya dari terkecil ke terbesar(ascending).

#include <iostream>

#include <conio.h> // untuk menggunakan fungsi _getch()


using namespace std;


int main()

{

// Judul program

cout << "|---------------------------------------------" << endl;

cout << "| PROGRAM SELECTION SORT MINIMUM ASCENDING" << endl;

cout << "|---------------------------------------------" << endl;

cout << "|" << endl;


// Input ukuran 

int size;

cout << "| Masukkan ukuran array: ";

cin >> size;

cout << "|---------------------------------------------" << endl;


// Input nilai array 

int* number = new int[size];

for (int i = 0; i < size; i++)

{

cout << "| Input number ke-" << i + 1 << " : ";

cin >> number[i];

}


system("cls");


cout << "|---------------------------------------------" << endl;

cout << "| PROGRAM SELECTION SORT MINIMUM ASCENDING" << endl;

cout << "|---------------------------------------------" << endl;

cout << endl;


// menampilkan nilai sebelum diurutkan

cout << "|---------------------------------------------" << endl;


cout << "| Sebelum diurutkan : ";

for (int i = 0; i < size; i++)

cout << number[i] << ' ';


cout << endl << "|---------------------------------------------" << endl;

cout << endl << "|---------------------------------------------" << endl;


// pengurutan nilai

int jmin, temp, u = 0;


for (int j = 0; j < size; j++)

{

jmin = size - 1;

for (int k = u; k <= size - 2; k++)

{

if (number[k] < number[jmin])

{

jmin = k;

}

}

temp = number[u];

number[u] = number[jmin];

number[jmin] = temp;

u++;


// Menampilkan proses (perubahan angka setiap loopingnya)

cout << "| Proses ke-" << j + 1 << ": ";


for (int i = 0; i < size; i++)

{

cout << number[i] << ' ';

}

cout << endl;

}

cout << "|---------------------------------------------" << endl;



// menampilkan nilai setelah diurutkan

cout << endl << "|---------------------------------------------" << endl;


cout << "| Setelah diurutkan : ";

for (int i = 0; i < size; i++)

cout << number[i] << ' ';


cout << endl << "|---------------------------------------------" << endl;


// Pause dan menghapus memory

_getch();

delete[] number;


return 0;

}


2. Minimum Selection Sort Descending

Minimum Selection Sort Descending adalah metode pengurutan dengan mencari nilai terkecilnya dahulu, kemudian diletakkan di indeks paling belakang. Sehingga urutannya dari terbesarke terkecil(descending).
#include <iostream>
#include <conio.h> // untuk menggunakan fungsi _getch()

using namespace std;

int main()
{
// Judul program
cout << "|---------------------------------------------" << endl;
cout << "| PROGRAM SELECTION SORT MINIMUM DESCENDING" << endl;
cout << "|---------------------------------------------" << endl;
cout << "|" << endl;

// Input ukuran 
int size;
cout << "| Masukkan ukuran array: ";
cin >> size;
cout << "|---------------------------------------------" << endl;

// Input nilai array 
int* number = new int[size];
for (int i = 0; i < size; i++)
{
cout << "| Input number ke-" << i + 1 << " : ";
cin >> number[i];
}

system("cls");

cout << "|---------------------------------------------" << endl;
cout << "| PROGRAM SELECTION SORT MINIMUM DESCENDING" << endl;
cout << "|---------------------------------------------" << endl;
cout << endl;

// Menampilkan nilai sebelum diurutkan
cout << "|---------------------------------------------" << endl;
cout << "| Sebelum diurutkan : ";
for (int i = 0; i < size; i++)
cout << number[i] << ' ';

cout << endl << "|---------------------------------------------" << endl;
cout << endl << "|---------------------------------------------" << endl;


// Pengurutan nilai
int jmin, temp, u = size - 1;

for (int j = 0; j < size; j++)
{
jmin = 0;
for (int k = 1; k <= u; k++)
{
if (number[k] < number[jmin])
{
jmin = k;
}
}
temp = number[u];
number[u] = number[jmin];
number[jmin] = temp;
u--;

// Menampilkan proses (perubahan angka setiap loopingnya)
cout << "| Proses ke-" << j + 1 << ": ";

for (int i = 0; i < size; i++)
{
cout << number[i] << ' ';
}
cout << endl;
}
cout << "|---------------------------------------------" << endl;


// menampilkan nilai setelah diurutkan
cout << endl << "|---------------------------------------------" << endl;

cout << "| Setelah diurutkan : ";
for (int i = 0; i < size; i++)
cout << number[i] << ' ';

cout << endl << "|---------------------------------------------" << endl;

// Pause dan menghapus memory
_getch();
delete[] number;

return 0;
}

3. Maximum Selection Sort Ascending

Maximum Selection Sort Ascending adalah metode pengurutan dengan mencari nilai terbesarnya dahulu, kemudian diletakkan di indeks paling belakang. Sehingga urutannya dari terkecil ke terbesar(ascending).

#include <iostream>

#include <conio.h>


using namespace std;


int main()

{

// input ukuran

cout << "Ukuran : ";

int size;

cin >> size;


cout << endl;


// deklarasi

int* angka = new int[size];


// input array

for (int i = 0; i < size; i++)

{

cout << "Input angka ke-" << i + 1 << " : ";

cin >> angka[i];

}


// menampilkan array sebelum diurutkan

cout << endl << "Sebelum diurutkan : ";

for (int i = 0; i < size; i++)

{

cout << angka[i] << ' ';

}


cout << endl;


// sorting secara ascending

int temp;

int jmax, u = size-1;


cout << endl;


for (int j = 0; j < size; j++)

{

jmax = 0;

for (int k = 1; k <= u; k++)

{

if (angka[k] > angka[jmax])

{

jmax = k;

}

}


temp = angka[u];

angka[u] = angka[jmax];

angka[jmax] = temp;

u--;


cout << "Hasil proses ke-" << j + 1 << " = ";

for (int k = 0; k < size; k++)

{

cout << angka[k] << ' ';

}

cout << endl;

}


// menampilkan array setelah diurutkan

cout << "\nNilai setelah diurutkan : ";

for (int i = 0; i < size; i++)

{

cout << angka[i] << ' ';

}


cout << endl;


// hapus array

delete[] angka;


_getch();


return 0;

}


4. Maximum Selection Sort Descending

Maximum Selection Sort Ascending adalah metode pengurutan dengan mencari nilai terbesarnya dahulu, kemudian diletakkan di indeks paling depan. Sehingga urutannya dari terbesar ke terkecil(descending).

#include <iostream>

#include <conio.h> // untuk menggunakan fungsi _getch()


using namespace std;


int main()

{

// Judul program

cout << "|---------------------------------------------" << endl;

cout << "| PROGRAM SELECTION SORT MAXIMUM DESCENDING" << endl;

cout << "|---------------------------------------------" << endl;

cout << "|" << endl;


// Input ukuran 

int size;

cout << "| Masukkan ukuran array: ";

cin >> size;

cout << "|---------------------------------------------" << endl;


// Input nilai array 

int *number = new int[size];

for (int i = 0; i < size; i++)

{

cout << "| Input angka ke-" << i + 1 << " : ";

cin >> number[i];

}


system("cls");


cout << "|---------------------------------------------" << endl;

cout << "| PROGRAM SELECTION SORT MAXIMUM DESCENDING" << endl;

cout << "|---------------------------------------------" << endl;

cout << endl;


// menampilkan nilai sebelum diurutkan

cout << "|---------------------------------------------" << endl;


cout << "| Sebelum diurutkan : ";

for (int i = 0; i < size; i++)

cout << number[i] << ' ';


cout << endl << "|---------------------------------------------" << endl;

cout << endl << "|---------------------------------------------" << endl;



// Pengurutan nilai 

int jmax, temp, u = 0;


for (int j = 0; j < size; j++)

{

jmax = size - 1;

for (int k = u; k <= size - 2; k++)

{

if (number[k] > number[jmax])

{

jmax = k;

}

}

temp = number[u];

number[u] = number[jmax];

number[jmax] = temp;

u++;


// Menampilkan proses (perubahan angka setiap loopingnya)

cout << "| Proses ke-" << j + 1 << ": ";


for (int i = 0; i < size; i++)

{

cout << number[i] << ' ';

}

cout << endl;

}

cout << "|---------------------------------------------" << endl;



// menampilkan nilai setelah diurutkan

cout << endl << "|---------------------------------------------" << endl;


cout << "| Setelah diurutkan : ";

for (int i = 0; i < size; i++)

cout << number[i] << ' ';


cout << endl << "|---------------------------------------------" << endl;

// Pause dan menghapus memory

_getch();

delete[] number;


return 0;

}

Comments

Popular posts from this blog

Algoritma Binary Search Dengan Metode sorting Selection Sort pada Cpp | C++ Tutorial

Algoritma Bubble Sort Pada C++/Cpp | C++ Tutorial