Tuesday 4 April 2017

Macam-macam dan Contoh dari Sorting C++



Macam-macam Sorting C++Selection Sort
Tehnik pengurutan dengan cara pemilihan elemen atau proses kerja denganmemilih elemen data terkecil untuk kemudian dibandingkan & ditukarkan denganelemen pada data awal, dst sampai seluruh elemen shg akan menghasilkan pola data yg telah disort.
Prinsip kerja dari teknik ini adalah :

Pengecekan dimulai data ke-1 sampai dengan data ke-n
Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
Tukar bilangan dengan Index terkecil tersebut dengan bilangan pertama ( I = 1 ) dari data bilangan tersebut
Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yg optimal.

Contoh
#include<conio.h>
#include<stdio.h>
int main()
{
   int i, j, iMin;
   int n, Urut;
   int Tmp, code;
   int Arr[100];
   printf("\nInputkan banyak data yang akan diurutkan : ");
   scanf("%i", &n);
   Urut = 1;
   for(i = 0; i < n; i++)
   {
      printf("Masukan data ke %i : ", i + 1);
      scanf("%i", &Arr[i]);
   }
   for(i = 0; i < n - 1; i++)
   {
      iMin = i;
      for(j = Urut; j < n; j++)
      {
         if(Arr[j] < Arr[iMin])
         {
            iMin = j;
            if(Arr[i] != Arr[iMin])
         {
         Tmp = Arr[i];
         if(Arr[i] > Arr[iMin])
         {
            Arr[i] = Arr[iMin];
            Arr[iMin] = Tmp;
         }
      }
   }
}
Urut = Urut + 1;
}
printf("\nSetelah Pengurutan\n");
for(i = 0; i < n; i++)
{
   printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
}
getch();
}

Buble Sort
Prinsip Kerja dari Bubble Sort adalah :
Pengecekan mulai dari data ke-1 sampai data ke-n
Bandingkan data ke-n dengan data sebelumnya (n-1)
Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya ( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)
Jika lebih besar maka tidak terjadi pemindahan
Ulangi langkah 2 dan 3 s/d sort optimal.

Contoh
#include<conio.h>
#include<stdio.h>
int main()
{
   int i, j, iMin;
   int n, Urut;
   int Tmp, code;
   int Arr[100];
   printf("\nInputkan banyak data yang akan diurutkan : ");
   scanf("%i", &n);
   for(i = 0; i < n; i++)
   {
      printf("Masukan data ke %i : ", i + 1);
      scanf("%i", &Arr[i]);
   }
   for(i = 1; i < n; i++)
   {
      for(j = 0; j < n - 1; j++)
      {
         if(Arr[j] > Arr[j + 1])
         {
            Tmp = Arr[j];
            Arr[j] = Arr[j + 1];
            Arr[j + 1] = Tmp;
         }
      }
   }
   printf("\nSetelah Pengurutan\n");
   for(i = 0; i < n; i++)
   {
      printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
   }
   getch();
}

Insertion Short
Prinsip dasar Insertion adalah secara berulang-ulang menyisipkan / memasukan setiap elemen. ke dlm posisinya / tempatnya yg benar.

  • Prinsip Kerja Insertion Sort adalah
  • Pengecekan mulai dari data ke-1 sampai data ke-n
  • Bandingkan data ke-I ( I = data ke-2 s/d data ke-n )
  • Bandingkan data ke-I tersebut dengan data sebelumnya (I-1), Jika lebih kecil maka data tersebut dapat disisipkan ke data awal sesuai dgn posisisi yg seharusnya
  • Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 ) sampai didapatkan urutan yg optimal.
Contoh
#include <conio.h>
#include <stdio.h>
int main( )
{
   int i, j, iMin;
   int n, Urut;
   int Tmp, code;
   int Arr[100];
   printf("\nInputkan banyak data yang akan diurutkan : ");
   scanf("%i", &n);
   for(i = 0; i < n; i++)
   {
      printf("Masukan data ke %i : ", i + 1);
      scanf("%i", &Arr[i]);
   }
   for(i = 1; i < n; i++)
   {
      Tmp = Arr[i];
      j = i - 1;
      while(Arr[j] >= Tmp && j > 0)
      {
          Arr[j + 1] = Arr[j];
          j  = j - 1;
      }
      if(Tmp >= Arr[j])
      {
         Arr[j + 1] = Tmp;
      }
      else
      {
          Arr[j + 1] = Arr[j];
          Arr[j] = Tmp;
      }
   }
   printf("\nSetelah Pengurutan\n");
   for(i = 0; i < n; i++)
   {
      printf("Elemen ke %i : %i\n", i + 1, Arr[i]);
   }
   getch( );
}

Sumber: http://www.belajarcpp.com/2016/01/macam-macam-dan-contoh-dari-sorting-cplusplus.html

No comments:

Post a Comment