Anda di halaman 1dari 4

×

HOME › DEV-CPP

Contoh Program Algoritma Pengurutan Shell Sort


C++ Sederhana
By Elang Hardifal  21:04  Add Comment

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

Baca Juga

 Contoh Program C++ Kasir Membuat Daftar Menu Makanan Restoran


Sederhana
 Cara Membuat Program Menghitung Nilai Grade Akhir Mahasiswa Dengan C+
+
 Contoh Program C++ Menu Pilihan Menggabungkan 2 Program [ Biodata
Mahasiswa] dan [Membuat Perkalian Matriks]
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<<"\n\t\t\tPengurutan Menaik Metode Shell Shot \n\n\n";
   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();
}

Anda mungkin juga menyukai