Skip to content

Instantly share code, notes, and snippets.

@uluumbch
Created May 3, 2021 14:14
Show Gist options
  • Save uluumbch/e173394918d28cf4ea168b23d4dfa953 to your computer and use it in GitHub Desktop.
Save uluumbch/e173394918d28cf4ea168b23d4dfa953 to your computer and use it in GitHub Desktop.
program sorting menggunakan algoritma shell sort
#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