Page 146 - BUKU TEKS SK T5
P. 146

Isihan pilih (Selection sort)
                                         Isihan pilih atau selection sort ialah satu algoritma dalam pengisihan suatu
                                         senarai yang boleh melibatkan proses seperti dalam Rajah 3.1.18.


                                                   Banding satu
                                                   unsur dengan              Tukar kedudukan
                                                   unsur terkecil/           jika turutan salah
                                                 terbesar daripada
                                                  unsur lain dalam
                                                     senarai

                                                             Rajah 3.1.18  Proses isihan pilih
                                           Terdapat dua proses perbandingan yang boleh dilaksanakan untuk
                                         menukar kedudukan, iaitu:
                                         1  Banding unsur dirujuk sama ada lebih besar daripada unsur terkecil
                                           (untuk turutan menaik)
                                         2  Banding unsur dirujuk sama ada lebih kecil daripada unsur terbesar
                                           (untuk turutan menurun)

                  CONTOH        5


                 Contoh 5 menunjukkan satu senarai nombor diisih secara menaik dengan menggunakan kaedah isihan
                 pilih. Atur cara JavaScript dan output ditunjukkan dalam Rajah 3.1.19.


                     no.length    <html>                                              Dapatkan senarai
                   untuk mengira    <body>                                            yang belum diisih
                     bilangan          <script>
                   nombor dalam             var no = [5,1,4,3,2], i, j, min, sementara;
                     senarai                var bilNombor = no.length;
                                            for (i = 0; i < bilNombor-1; i++)
                                            {
                                                 min = i;
                                                 for (j = i + 1; j<bilNombor; j++)
                                                 {
                                                      if (no[j] < no[min])
                     Menetapkan nilai                    {                           Bandingkan unsur
                        terkecil                           min = j;
                                                      }
                                                 }
                                                 if (min != i)
                                                 {
                                                      sementara = no[i];
                                                      no[i] = no[min];                  Tukar kedudukan
                                                      no[min] = sementara;
                                                 }
                                            }
                                            document.write(no);
                                       </script>
                                    </body>
                                </html>

                 138   Sains Komputer Tingkatan 5                                                                                                                                                                PB
   141   142   143   144   145   146   147   148   149   150   151