tempat blajar

Just another UNG Weblog weblog
RSS icon Email icon Home icon
  • IMPLEMENTASI ALGORITMA SORTING

    Posted on Oktober 11th, 2010 trisupu No comments

    Pada kesempatan ini akan dibahas beberpa implementasi / bentuk dari algoritma pengurutan seperti bubble sort, selection sort, insert sort, dan quick sort. Berikut adalah beberapa implementasi algoritma pengurutan dalam bahasa Pascal :

    Bubble Sort

    procedure bubblesort(var d:array100; c:integer);
    var
    i,j:integer;
    begin
    for i:=1 to c-1 do
    for j:=c downto i+1 do
    if(d[j] < d[j-1]) then
    swap(d[j],d[j-1]);
    end;

    Selection Sort

    procedure selectionsort(var d:array100; c:integer);
    var
    lok,i,j:integer;
    begin
    for i:=1 to c-1 do
    begin
    lok:=i;
    for j:= i+1 to c do
    if(d[j]<d[lok]) then
    lok:=j;

    swap(d[i],d[lok]);
    end;
    end;

    procedure swap(var a,b:integer);
    var
    t:integer;
    begin
    t:=a;
    a:=b;
    b:=t
    end;

    Insert Sort

    procedure InsertionSort(var Data:Tdata);
    var i,j,temp : integer;
    begin
    for i:=1 to N-1 do begin
    temp:=Data[i];
    j:=i;
    while (j>0) and (temp < Data[j-1]) do begin
    Data[j]:=Data[j-1];
    j:=j-1;
    end;
    Data[j]:=temp;
    end;
    end;

    Quick Sort

    procedure quicksort(var d:array100; 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
    swap(d[a1],d[b1]);
    inc(a1);
    dec(a1);
    end;

    until (a1 <= b1);
    if (a < b1) then
    quicksort(d,a,b1);
    if (a1 < b) then
    quicksort(d,a1,b);
    end;

    Keterangan :

    array100 adalah type array [1..100] of integer harus dideklarasikan terlebih dahulu pada type.

    c adalah jumlah jumlah data pada array.

  • Hello world!

    Posted on Juni 30th, 2010 trisupu 2 comments

    Selamat datang di UNG Weblog. Ini adalah isi yang pertama, silahkan di edit atau delete!