Langsung ke konten utama

Sorting in LinkList ( )

--------------------------------------Selection Sort----------------------------------
public void selectionSort(){
        link min=first;
        link previousMin=first;
        link prev2=first,prev1=first;
        for(link curr1 = first; curr1.next!=null;curr1=curr1.next){
            min=curr1;
            for(link curr2 = curr1 ; curr2!=null;curr2= curr2.next){
                if(min.data>curr2.data){
                    min=curr2;
                    previousMin=prev2;
                }
                prev2=curr2;
            }
            if(min==curr1){
                prev1=curr1;
            }
            else if(min==curr1.next){
                if(curr1==first)
                    first=min;
                prev1.next=min;
                curr1.next=min.next;
                min.next=curr1;
               
                curr1=min;
                prev1=min;
            }   
            else{
                link temp=curr1.next;
                if(curr1!=first)
                    prev1.next=min;
                else
                    first=min;
                curr1.next=min.next;
                min.next=temp;
                previousMin.next=curr1;
               
                prev1=min;
                curr1=min;
            }
        }
}

-----------------------------------Insertion Sort-------------------------------
public void insertionSort(){//by pointer
        link curr2;
        link prev2=first,prev1=first;
        link curr1=first;
        while(curr1.next!=null){
            curr2=curr1.next;
            while(curr2!=null&&curr2.data>=curr1.data){
                prev2=curr2;
                curr2=curr2.next;
            }
            if(curr2==null){
                prev1=curr1;
                curr1=curr1.next;
            }
            else if(curr2==curr1.next){
                if(curr1==first)
                    first=curr2;
                else
                prev1.next=curr2;
                curr1.next=curr2.next;
                curr2.next=curr1;
               
                curr1=curr2;
            }   
            else{
                if(curr1!=first)
                    prev1.next=curr2;
                else
                    first=curr2;
                prev2.next=curr2.next;
                curr2.next=curr1;
               
                curr1=curr2;
            }
        }
}

Komentar

Postingan populer dari blog ini

Binary Tree

       Binary Tree adalah struktur data yang hampir mirip juga dengan Linked List untuk menyimpan koleksi dari data. Dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan ke dua subtree tersebut harus dipisah.   -Node : elemen pohon yang berisi informasi dan penunjuk percabangan   -Tingkat (level) : akar ditentukan bertingkat 1   -Derajat (degree) : banyaknya turunan dari suatu node.   -Daun (leaf) : node yang berderajat 0, dinamakan juga sebagai node eksternal.   -Tinggi (high)/ kedalam (depth) : tingkat maksimum node dalam pohon dikurangi 1         Aturan yang harus dipenuhi untuk membangun sebuah BST adalah sebagai berikut: Semua data dibagian kiri sub-tree dari node t selalu lebih kecil dari data dalam node t itu sendiri. Semua data dibagian kanan sub-tree dari node t selalu lebih besar atau sama dengan data dalam node t.       ...

E-MAIL DARI DIKTAKTOR KITA (ORIGINAL)

REVISI LAPORAN PRAKTIKUM BIOLOGI DASAR "KARAKTERISTIK MEMBRAN SEL" Dari: Angie Riena <angie_riena@yahoo.co.id>       Kepada: Hery_cp@yahoo.co.id; Hery_cp@live.com; agushariono@yahoo.com; Agushari0n0@yahoo.com; AgushariOnO@yahoo.com Isi Laporan Revisi berupa: Perbaikan metode kerja sesuai langkah kerja yang dilakukan dalam praktikum      (diagram alir) Perbaikan hasil & keterangan pendukung hasil (pengamatan secara detail) Pembahasan:        AnPros: Bahas alat yang digunakan dalam praktikum (waterbath & aerator)                     beserta bahan selengkapnya (ditunjang literatur dan gambar)        AnHas:  Bahas grafik hasil pengamatan dan pigmen betacyanin ditunjang dengan                ...