TabInt
Tabel tersebut tidak terurut dan kita ingin menampilkan isi tabel secara terurut seperti di bawah ini:
1. Cara pertama: urutkan isi tabel dengan algoritma maximum sort atau insertion sort, sehingga isi array
seperti di bawah ini:
Setelah itu, tampilkan isi array secara sekuensial mulai dari elemen pertama sampai terakhir.
TabInt
10 8 4 7 5 6 3 1 9 2
1 2 3 4 5 6 7 8 9 10
- TabRank[1]=10 artinya ranking pertama atau elemen terbesar adalah TabInt dengan indeks 10, yaitu 129.
- TabRank[2]=8 artinya ranking pertama atau elemenkedua terbesar adalah TabInt dengan indeks 8, yaitu 123.
- …dan seterusnya
Pertama-tama, simpan indeks TabInt yang berisi nilai TabInt terbesar pada variabel First. Setiap elemen
TabNext menyimpan indeks TabInt yang elemennya akan dicetak berikutnya. Elemen First dan TabNext
membentuk rantai yang menghubungkan elemen terbesar TabInt ke elemen terbesar kedua, kemudian ke
elemen ketiga terbesar, dan seterusnya, hingga elemen terkecil.
Kemudian, cetak elemen TabInt dimulai dari TabInt[First], yaitu TabInt[10], lalu TabInt[8], TabInt[4],
….TabInt[2]. Secara umum, setelah TabInt[i] dicetak, elemen selanjutnya yang akan dicetak adalah
TabInt[TabNext[i]].
TabInt
9 0 1 7 6 3 5 4 2 8
1 2 3 4 5 6 7 8 9 10
First bernilai 10 artinya elemen pertama yang akan dioutputkan adalah TabInt[10], yaitu 129.
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[10]]=TabInt[8]=123
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[8]]=TabInt[4]=121
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[4]]=TabInt[7]=117
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[7]]=TabInt[5]=114
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[5]]=TabInt[6]=112
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[6]]=TabInt[3]=18
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[3]]=TabInt[1]=17
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[1]]=TabInt[9]=15
Elemen berikutnya yang akan ditampilkan adalah TabInt[TabNext[9]]=TabInt[2]=11
Karena TabNext[2]=0 maka tidak ada lagi elemen TabInt yang akan ditampilkan. Dengan kata lain proses
selesai.
Di bawah ini algoritma untuk menampilkan isi TabInt dengan menelusuri TabNext.
Secara lojik, TabInt dan TabNext bisa digambarkan dalam sebuah list berkait linier seperti di bawah ini: