Program Quicksort

Nama : Idham

Kelas : 4IA17

NPM : 53410377

Mata Kuliah : Algoritma dan Pengolahan Pararel

Dosen : Asep Djuarna

/*

 * To change this license header, choose License Headers in Project Properties.

 * To change this template file, choose Tools | Templates

 * and open the template in the editor.

 */

 

import java.text.DecimalFormat;

import java.text.NumberFormat;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.Random;

 

Statement diatas menggunakan 5 buah library untuk menentukan berbagai operasi matematika yang digunakan pada program ini yang digunakan sebagai perhitungan data.

 

/**

 *

 *

 */

public class JavaApplication2 {

 

   

    private static void swap(int[] a, int i, int j) {

        int temp = a[i];

        a[i] = a[j];

        a[j] = temp;

    }

   

Blok statement diatas menggunakan sebuah 2 method encapsulasi dimana terdapat method didalam method yaitu public dan private. Pernyataan diatas mendeklarasikan 3 buah variable yang digunakan sebagai untuk deklarasi setiap perhitungan diantaranya variabel I,j, dan temp.

 

    private static void JavaApplication2(int list[], int from, int to) {

 

        if (from >= to) {

            return;

        }

       

 

        int pivot = list[from];

        int i = from – 1;

        int j = to + 1;

        while (i < j) {

 

            i++;

            while (list[i] < pivot) { i++; }

 

            j–;

            while (list[j] > pivot) { j–; }

 

            if (i < j) {

                swap(list, i, j);

            }

        }

       

Blok statement diatas menggunakan kondisi perulangan if dn menggunakan tipe data integer karena kebanyakan menggunakan perintah angka.

 

        JavaApplication2(list, from, j);

        JavaApplication2(list, j + 1, to);

    }

 

    public static int[] JavaApplication2(int [] list) {

        JavaApplication2(list, 0, list.length-1);

        return list;

    }

   

   

    Untuk jenis method yang diatas digunakan untuk membuat setiap data yang dimasukkan bertambah sesuai dengan jumlah variable.

   

    public static void main(String args[]) throws Exception

    {

       

       

        int i=0,n=0;

        int counter = 1;

       

        JavaApplication2 s= new JavaApplication2();

        ArrayList<Integer> arrlist=new ArrayList<Integer>();

        

        Random rand = new Random();

       

 

        while(counter<=100000){ // banyaknya angka yang mau di random

            int list = rand.nextInt(100000); //angka yang mau random

            arrlist.add(list);

            System.out.println(list);

            counter+=1;

        }

       

      

        Dari setiap jumlah data yang dimasukkan akan bertambah secara otomatis karena pada statement awal sudah ditambahkan dengan variable kesatu dan kedua. Pada array baru ini akan menyimpan data yang lama dan menambahkannya kedalam array baru. Data akan memulai dari data yang baru sampai batas akhirnya yang sudah tidak bisa di tambahkan lagi dengan variable atau apabila data dibawah 100000.

       

        /*

         BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

        while(!(list=bf.readLine()).equalsIgnoreCase(“stop”)){

            int intelement = Integer.parseInt(list);

            arrlist.add(intelement);

           

        }*/

       

        int elementlist[]  = new int[arrlist.size()];

        Iterator<Integer> iter = arrlist.iterator();

        for (int j=0;iter.hasNext();j++) {

            elementlist[j] = iter.next();

        }

       

                                long start = System.nanoTime();           

        elementlist=JavaApplication2(elementlist);

        System.out.println(” “);

        System.out.println(” “);

        System.out.println(” “);

        System.out.println(“Values after Quick Sort : “);

        for (int j=0;j<elementlist.length;j++) {

            System.out.println(elementlist[j]+” “);

        }

       

        long end = System.nanoTime();

        NumberFormat formatter = new DecimalFormat(“#0.000000000”);

        System.out.println(“Execution time is ” + formatter.format((end – start) / 1000000000d) + ” seconds”);

       

    }

   

   

}

 

Blok statement diatas digunakan jika data dimasukkan melebihi 100000 maka data akan terhenti secara otomatis dan akan menghitung waktu dari setiap penambahan data iu terjadi. Data hanya merupakan sebuah bentuk decimal dan waktu dimulai dari perhitungan awal sampai dengan perhitungan akhir.

Image

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s