Program metode shell sort c++ dikembangkan oleh Donald L. Shell pada tahun 1959. Pada algoritma shell sort c++ ini jarak antara dua elemen yang dibandingkan dan ditukarkan. Secara singkat metode ini dijelaskan sebagai berikut. Pada langkah pertama, kita ambil elemen pertama dan kita bandingkan dengan elemen jarak tertentu dari elemen pertama tersebut.
Kemudian elemen yang kedua kita bandingkan dengan elemen yang lain dengan jarak yang sama seperti jarak seperti diatas. Demikian seterusnya sampai seluruh elemen dibandingkan. Masih pada langkah kedua, proses program pngurutan shell sort diulang dengan langkah yang lebih kecil, kemudian pada langkah ketiga jarak tersebut diperkecil lagi seluruh proses dihentikan jika jarak sudah sama dengan satu.
Contoh program pengurutan shell sort
Contoh Algoritma Shell Sort
1. jarak <- N
2. selama (jarak>1) kerjakan 3-12
3. jarak <- jarak / 2
4. Sudah <- 1
5. selama Sudah = 1 kerjakan 6-12
6. Sudah <- 0
7. j <- 0
8. selama (j<N-jarak) kerjakan 9-12
9. i <- j + jarak
10. if (Data[j] > Data[i])
11. Tukar(&Data[j],&Data[i])
12. Sudah=1
Contoh Program Shell Sort Bahasa C ++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
//Deklarasi variabel
int val[100];
int i, n, t;
//Input
cout<<endl;
cout<<“ntttPengurutan Menaik Metode Shell Shot nnn”;
cout<<“Masukkan Jumlah Data yg ingin di urutkan : “;cin>>n;
cout<<endl;
for(i = 0; i < n; i++)
{
cout<<“Nilai ke-“<<1+i<<” : “;cin>>val[i];
}
//Shell Sort
for(int w = n/2; w > 0;w=w/2)
{
for(int x = w; x < n; x++)
{
for (int y = x-w; y >= 0; y-=w)
{
if(val[y+w] < val[y]) //Note
{
t=val[y+w];
val[y+w]=val[y];
val[y]=t;
}
}
}
}
//Mencetak data setelah diurutkan
cout<<endl;
cout<<” DATA YG TELAH DIURUTKAN DENGAN MENGGUNAKAN SHELL SORT n”;
cout<<endl;
for(i = 0; i < n; i++)
{
cout<<val[i]<<” “;
}
getch();
}