Home > Java > Algoritma Pengurutan Shaker Sort

Algoritma Pengurutan Shaker Sort

September 22, 2012 Leave a comment Go to comments

Algoritma Shaker sort merupakan improvement dari algoritma pengurutan Bubble sort. Cara kerja dari algoritma ini hampir sama dengan cara kerja dari algoritma Bubble Sort. Perbedaannya adalah Shaker sort melakukan pengurutan array dari dua arah.

Berikut ini contoh implemtasi algoritma Shaker sort dalam bahasa pemrograman Java.

Nama file : Shaker.java

package shakersort;
import java.util.Random;
/**
 *
 * @author Taeyeon
 */
public class Shaker {

    private int[] data;
    
    private static Random valueGen = new Random();
    
    public void setData(int newSize)
    {
        data = new int[newSize];
        for (int i=0; i<newSize; i++)
        {
            data[i]=1+ valueGen.nextInt(120);
        }
    }
    
    public int [] getData()
    {
        return data;
    }
    
    public void testData()
    {   
        for(int i=0; i<data.length; i++)
        {
            System.out.print(data[i]+" ");
        }
    }
        
    public void shakerSort(int [] newData)
    {
        int [] toSort = newData;
        for (int i=0; i<toSort.length/2; i++)
        {
            boolean swapped = false;
            for(int j=0; j<toSort.length - i -1; j++)
            {
                int temp;
                if(toSort[j]> toSort[j+1])
                {
                    temp = toSort[j];
                    toSort[j] = toSort[j+1];
                    toSort[j+1]= temp;
                    swapped = true;
                }
            }
            
           for(int k=toSort.length-2-i; k>i; k--)
            {   
                int temp;
                if(toSort[k]< toSort[k-1])
                {
                    temp = toSort[k];
                    toSort[k] = toSort[k-1];
                    toSort[k-1]= temp;
                    swapped = true;
                }
            }
            
            if(!swapped)
            break;
        }
    }
}

Nama file : Main.java

package shakersort;

/**
 *
 * @author Taeyeon
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      Shaker sh = new Shaker();
      sh.setData(25);
      System.out.println("Array dengan nilai element random");
      sh.testData();
      System.out.print("\n");
      System.out.println("\nArray dengan nilai element sudah terurut");
      sh.shakerSort(sh.getData());
      sh.testData();
    }

}

Contoh output program:

Output Shaker Sort

Semoga bermanfaat😀

Referensi : Dari berbagai sumber.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: