Commodore sayı 70, sayfa 16
Sayfanın metni

Sayfa 16

Ma aaa sayısı (n-1)'e düşer. Doğrusal Sıralama

Bu yöntem “araya sıkıştırmalı sıralama” prensibine dayanır. Örneğin siz bir dizi kartı dizerken istediğiniz kartları diğerlerinin arasına sıkıştırırsınız. Böylece zaten gereken yerde bulunan elemanların yeri boşu boşuna değişmez. Eğer data grubu biraz sıralıysa bu sistem çok hızlı işler. Eğer grup çok dağınıksa sıralama için büyük zaman harcanır. Doğrusal sıralama rutini aşağıdaki gibidir:

30000 REM 30005 REM ***DOĞRUSAL SIRALAMA*** 30010 REM 30020 FOR 1-2 TO N 30030 ::A(0) — A(I)

30040 ::B — I-I 30050 ::1F A(0) — — A(B) THEN GOTO 30090 30060 ::A(B-- 1) — A(0) 30070 ::B — 30080 ::1F B 0 THEN

Di Ve va er Ü

GOTO 30050 30090 ::A(B4 1) — A(0) 30100 NEXT I 30110 RETURN

Gördüğünüz gibi doğrusal sıralama her işinizi en kısa zamanda görecek bir program değildir. Aslında gerçekten fazla önemi yoktur. Daha önce bahsettiğimiz geliştirilmiş kabarcık sıralama çok daha yararlıdır. Toplam işlem sayısı (n*n + 3*n - 4)/2'dir.

Shell Sıralaması

Biraz daha verimli olmasına rağmen anlaşılması daha zor olan bir sıralama sistemi olan Shell, 1959 yılında D.L. Shell tarafından önerilmiştir. Bu metodda da direkt bir yaklaşım izleyeceğiz. Sıralanacak olan değerler komşu değerlerle değil uzaktaki değerlerle karşılaştırılacaktır. Shell sıralaması aslında “araya sıkıştırma” yönteminin değişik bir uygulamasıdır. Ancak sebebi bilinmeyen nedenlerle en verimli adım büyüklüğü tespiti hâlâ yapılamamaktadır. Shell sıralamasının anlatımı için uygulanabilecek en kolay yol aşağıda verilen yapısal akış şemasıdır. Bu sistemde data elemanları gittikçe azalan uzaklıktaki diğer elemanlarla karşılaştırılır ve gerektiğinde yer değiştirilir. Yavaş yavaş en küçük uzaklığa erişilir ve (umarız) elemanlar sıralanmış olur.

Klavyeyle gezinmek için ← ve → tuşları.