Shell Sort C++

Menggunakan metode perbandingan dan pertukaran dengan menukar elemen yang berjarak jauh, metode tersebut merupakan ide Donald Shell pada tahun 1959. Perbandingan dapat dimulai dari separuh array yang akan disortir dengan separuh bagian lain. Contoh: jika terdapat 100 elemen, makan perbandingkan elemen 1 dan 51, elemen 2 dan 52
dan begitu seterusnya.

• Gap : jarak antara elemen yang di-sorting
• Seiring berjalannya waktu, gap diperkecil.
• Shell Sort juga dikenal sebagai Diminishing Gap Sort
• Shell Sort mengusulkan mulai dengan ukuran awal
• gap = N/2 dan dibagi 2 setiap langkah
• Gap dapat ditentukan pemilihan variasinya

Contoh coding program untuk shell sort :

#include
#include
using namespace std;
void cetak(int *arr, int n) //print array elements
{
int i=0;
for(i=0;i<n;i++)
cout<<arr[i] << " " ;
cout < 1)) // boolean j ( true jika 0)
{
flag = 0; // reset flag ke 0
j = (j+1) / 2 ;// j == gap
for (i = 0; i < (n – j); i++)
{

if(arr[i+j] < arr[i])
{
tmp = arr[i+j]; //swap
arr[i+j] = arr[i];
arr[i] = tmp;
flag = 1; //swap telah terjadi
}
}
}
}

int main()
{

int a[]={9,6,5,23,2,66,14,8,2,7,1,8}; // array to sort
cetak(a,12); // print elements
shellSort(a,12); //call to bubble sort
cetak(a,12); // print elements
return 0;
}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s