Created
May 3, 2021 14:14
-
-
Save uluumbch/e173394918d28cf4ea168b23d4dfa953 to your computer and use it in GitHub Desktop.
program sorting menggunakan algoritma shell sort
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <conio.h> | |
using namespace std; | |
void shellSort(char data[], int n) | |
{ | |
char dataSorted[n]; // menyiapkan array untuk menampung salinan data asli | |
cout << "Sebelum data di Shell Sort: "; | |
for (int i = 0; i < n; i++) | |
{ | |
cout << "\"" << data[i] << "\"" | |
<< " "; // cetak array sebelum di sort | |
dataSorted[i] = data[i]; // menyalin array ke variabel baru | |
} | |
cout << "\n---------------------------" << endl; | |
for (int gap = n / 2; gap > 0; gap /= 2) // melakukan perulangan dengan mengecek vairabel gap. variabel gap diperoleh dari nilai panjang array dibagi 2 | |
{ | |
for (int i = gap; i < n; i += 1) | |
{ | |
int temp = dataSorted[i]; // menyimpan data untuk di sort ke dalam vairabel sementara | |
for (int j = i; j >= gap && dataSorted[j - gap] > temp; j -= gap) | |
{ | |
dataSorted[j] = dataSorted[j - gap]; | |
} | |
dataSorted[j] = temp; | |
} | |
} | |
cout << "Setelah data di Shell Sort: "; // mencetak data setelah sorted | |
for (int i = 0; i < n; i++) | |
cout <<dataSorted[i]<< " "; | |
} | |
} | |
int main() | |
{ | |
char nama[] = {'B', 'A', 'C', 'H', 'R', 'U', 'L', ' ', 'U', 'L', 'U', 'U', 'M'}; | |
int panjangNama = sizeof(nama) / sizeof(nama[0]); | |
shellSort(nama, panjangNama); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment