Langsung ke konten utama

REVIEW WEBSITE MEDIAKOMEN.COM || WEBSITE DAFTAR JADI BUZZER || PENGHASIL UANG VIA WEBSITE || RECEHAN

REVIEW WEBSITE MEDIAKOMEN.COM || WEBSITE DAFTAR JADI BUZZER || PENGHASIL UANG VIA WEBSITE || RECEHAN REVIEW WEBSITE MEDIAKOMEN.COM || WEBSITE DAFTAR JADI BUZZER || PENGHASIL UANG VIA WEBSITE || RECEHAN REVIEW WEBSITE MEDIAKOMEN.COM || WEBSITE DAFTAR JADI BUZZER || PENGHASIL UANG VIA WEBSITE || RECEHAN REVIEW WEBSITE MEDIAKOMEN.COM || WEBSITE DAFTAR JADI BUZZER || PENGHASIL UANG VIA WEBSITE || RECEHAN #REVIEWWEBSITE #penghasiluang #receh Berikut Link Webistenya : https://www.mediakomen.com/ 0:00:00 ▼ EXPAND FOR NAVIGATION ▼ 0:01 CH 0: Opening 0:08 CH 1: Story 0:10 CH 2: Closing

Program Quick Sort Pascal

Selamat malam sob... kali ini ane mau post nih salah satu tugas struktur data semester 3 lagi, yaitu Program Quick sort, apa sih Quick sort itu?... ane jelasin dulu sob dari mbah google...

Quick Sort merupakan salah satu algoritma pengurutan data yang menggunakan teknik membagi  data menjadi partisi-partisi. Metode Quick Sort disebut juga dengan nama partition exchange sort. 
Untuk memulai proses pengurutan, pertama-tama sebuah data dipilih dari kelompok data sebagai data pivot. Posisi data pivot dapat dicari dengan menggunakan rumus :
    i  = (indeks awal + indeks akhir) div 2  
Kemudian elemen-elemen data akan diatur, sehingga nilai data pivot yang terletak di posisi ke I memenuhi kondisi sebagai berikut :
  1. Semua data di posisi ke 1 sampai dengan ke I-1  lebih kecil atau sama dengan pivot atau data[i]<=pivot.
  2. Semua data di posisi ke I+1 sampai dengan ke N  lebih besar atau sama dengan pivot atau data[i]>=pivot.
Contoh  :

Ada  12 data  sebagai berikut :  
indeks 1 2 3 4 5 6 7 8 9 10 11 12
Data        33 99 18 7 5 45 57 25 55 10 40 50
Pos = (1+12) div 2 = 6
Pivot = data[ pos]  = 45
Data 45 terpilih sebagai data pivot. Setelah diatur, maka posisi urutan data sebagai berikut :
indeks 1 2 3 4 5 6 7 8 9 10 11 12
Data        33   25 18 7 5 10   40 45 55 50 57 99
Dimana :
  1. Semua elemen di posisi ke 1 sampai dengan posisi ke 8   lebih kecil atau sama dengan nilai 45.
  2. Semua elemen di posisi ke 9  lebih besar atau sama dengan 45.
Dengan demikian, data tersebut akan terpecah menjadi 2 partisi, satu partisi di sisi kiri 57 dan satu partisi di sisi kanan 57 sebagai berikut :    

                                      [33   25 18 7 5 10   40  ] 45 [55 50 57 99]

Dengan cara yang sama, proses  partisi diulangi lagi untuk masing-masing partisi  baik  di sisi kanan maupun di sisi kanan. Jadi setiap partisi yang diperoleh akan dipartisi lagi hingga diperoleh hasil pengurutan data.

Dalam proses partisi dengan metode quick sort dapat selesaikan  dengan menggunakan prosedur rekursi. Karena proses partisi dengan cara sama selalu diulangi. Proses partisi dibentuk dalam sebuah prosedur atau fungsi dan akan memanggil dirinya sendiri.

langsung aja sob liat kodingannya,..

COPAS BOLEH, PELAJARI HARUS!!!..
====================================================================
Program QuickSort;
uses crt;
type matrix = array [1..100] of integer;

 Procedure input(var d : matrix; var n : integer);
 var k : integer;
 begin
 randomize;
 write('Jumlah data ; '); readln(n);
 for k := 1 to n do
 begin
  d[k] := random(100);
  write(d[k],' ');
 end;
 writeln;
 end;

 Procedure tukar(var a,b : integer);
 var t : integer;
 begin
  t := a;
  a := b;
  b := t;
 end;

Procedure cetak(d : matrix; c: integer);
 var i : integer;
 begin
  for i := 1 to c do
   write(d[i]:5);
   writeln;
 end;

procedure quicksort(var d:matrix; a,b:integer);
var
a1,b1,pivot: integer;
begin
   a1:=a; b1:=b;
   pivot:=d[(a+b) div 2];
   repeat
     while(d[a1] < pivot) do inc(a1);
     while(d[b1]>pivot) do dec(b1);
     if (a1<=b1) then
        begin
          tukar(d[a1],d[b1]);
          inc(a1);
          dec(b1);
        end;
   until (a1>b1);
   cetak(d,b);
   if (a < b1) then quicksort(d, a, b1);
   if (a1 < b ) then quicksort(d,a1, b);
end;

{Program Utama}
var
data :matrix;
n:integer;

begin
clrscr;
  input(data,n);
  writeln('Proses Sorting Data');
  cetak(data,n);
  quicksort(data,1,n);
  writeln;
  writeln('Hasil Sorting Data ');
  cetak(data,n);
  readkey;
end.
====================================================================

OUTPUT

========================================================================

Segitu ae dulu sob,, semoga membantu, kalo ada yang mau ditanyain atau didiskusiin, komen aja sob di kolom komentar... siapa tau kita bisa berbagi apa yang kita tahu 😎...

Komentar

Posting Komentar

Postingan populer dari blog ini

MEMBUAT DATA TABEL DENGAN SQLITE3 DI CMD

MEMBUAT DATA TABEL DENGAN SQLITE3 DI CMD 😎  Membuat dan membuka .db              Asumsikan kita akan membuat tabel dengan nama tabel data.db  Membuka sqlite3 dan membuka data.db buka cmd lalu ketik cd.. lalu ketik cd.. lagi lalu cd sqlite jika anda menempatkan sqlitenya di folder c sqlite dan kita bisa ketik .databases untuk melihat apakah database sudah dibuat atau belum          Membuat tabel create tabel (namatable) (judul atas) = membuat tabel untuk melihat daftar tabel yang dibuat ketik .tabels Dan disini saya akan membuat tabel data dengan struktur ( no sebagai primary key, judul dan harga ) Memodifikasi tabel Menambahkan kolom alter table (namatabel) add column (namacolom) (typenya); ->> Dan saya akan coba menambahkan kolom pengarang pada tabel data saya dengan mengetik  alter table data column Pengarang varchar; Menambah data ke tabel kita bisa mengetikan di cmd  insert into (namatabel)(....

Source Code Program Graph Ufo Terbang Dengan Bahasa Pascal

Source Code Program Graph Ufo Terbang Dengan Bahasa Pascal Baik Sob kali ini mimin akan membagikan source code bahasa pascal yaitu membuat graph ufo terbang. Source code ini sering menjadi tugas kuliah nih sob, terutama mata kuliah praktikum struktur data ane. Langsung saja sob kita lihat source code-nya beserta outputnya, mimin harap kalian semua dapat mempelajarinya, syukur-syukur dapat membuat yang lebih keren lagi. ======================================================================== Program graf; uses crt, graph; var tunggu, x1,x2,y1,y2, ukuran, l : word; x, y, drivegrafik, modegrafik : integer; ufo : pointer; begin InitGraph(drivegrafik, modegrafik,' '); drivegrafik := CGA; modegrafik := CGAC1; OutTextXY(30,30,'Tekan sembarang untuk selesai'); // OutTextXY = utk menentukan titik penempatan text SetColor(1); Ellipse(160,100,0,360,20,5); Line(140,100,180,100); SetFillStyle(SolidFill,4); FloodFill(160,101,1); Line(160,95,160,90); Circle...