const
n=100;
var
A: array [1 .. n] of Real;
yoki
const
n=100;
type
Vector = array [1 .. n] of Real;
var
A : Vector;
Ikki o`lchovli massiv (matritsa)
Ikkinchi indeks o`zgarishining yo`nalishi
Birinchi indeks
o`zgarishining
yo`nalishi
Bayoni
const
m=30; n=50;
var
A: array [1 .. m, 1 .. n] of Real;
yoki
const
m=30; n=50;
type
Matr = array [1 .. m, 1 .. n] of Real;
var
A : Matr;
Uch o`lchovli massiv
Ikkinchi indeks o`zgarishining yo`nalishi
Bayoni
const
m=30; n=50; p=20;
var
A: array [1 .. m, 1 .. n, 1 .. p] of Real;
yoki
const
m=30; n=50; p=20;
type
T_Array = array [1 .. m, 1 .. n, 1 .. p] of Real;
var
A : T_Array;
9.1.2. Massivlarni saralash. Saralash masalasini echishda odatda qo`shimcha xotiradan minimal foydalanish talabi suriladi, bundan qo`shimcha massivlardan foydalanish mumkin emasligi kelib chiqadi.
Saralashning har xil usullari algoritmlari ishi tezligini baholash uchun, qoida bo`yicha, ikkita ko`rsatkichdan foydalaniladi:
o`zlashtirishlar soni;
taqqoslashlar soni.
Saralashning hamma usullarini ikkita katta guruhga ajratish mumkin:
Saralashning to`g`ri usullari;
Saralashning yaxshilangan usullari.
Saralashning to`g`ri usullari o`z navbatida uchta guruhga bo`linadi:
Kiritish yo`li bilan saralash;
Tanlash yo`li bilan saralash;
Almashtirish yo`li bilan saralash («ko`pik» usuli)
Saralashning yaxshilangan usullari ham to`g`ri usullar tayangan tamoyilga asoslanadi, lekin saralashni tezlashtiradigan ba`zibir g`oyalardan foydalanadi. Amalda to`g`ri usullar, past tezlikka ega bo`lganligi uchun, kam ishlatiladi. Lekin to`g`ri usullar ularga asoslangan yaxshilangan usullarning mohiyatini yaxshi ko`rsatadi. Bundan tashqari, ba`zi bir hollarda uzun bo`lmagan massivda va (yoki) massiv elementlarining o`ziga xos joylashgan vaqtida to`g`ri usullarning ba`zilari yaxshilangan usullardan ham o`tishi mumkin.
9.1.3. Kiritish yo`li bilan saralash.
Usul tamoyili.
Massiv saralangan va saralanmagan ikki qismga bo`linadi: Saralanmagan qismdan elementlar navbat bilan tanlanadi va saralangan qismga, elementlar tartibini buzmasdan, kiritiladi. Algoritm ishi boshida massivning saralangan qismi sifatida faqat bitta birinchi element, saralanmagan qism sifatida esa qolgan elementlar olinadi.
Shunday qilib, algoritm har biri to`rtta ishdan iborat n-1 kiritishdan (massiv n o`lchamli) tashkil topadi:
navbatdagi i-saralanmagan elementni olish va uni qo`shimcha o`zgaruvchida saqlash;
massivning saralangan qismida olingan elementning mavjudligi elementlar tartibini buzmaydigan, j-o`rinni izlash;
topilgan o`rinni bo`shatish uchun massiv elementlarini i-1 dan j-1 gacha o`ngga siljitish;
olingan elementni topilgan j-o`ringa joylashtirish.
Bu usulni amalga oshirish uchun bir-biridan kiritish o`rnini izlash usullari bilan farq qiluvchi, bir nechta algoritmni taklif qilish mumkin. Mumkin bo`lgan algoritmlardan birini amalga oshirish sxemasini ko`ramiz.
Bitta kiritish ishini sxematik ravishda quyidagicha bayon etish mumkin:
9.1.4.Satrlar
Satrlar belgilardan iborat bir o`lchovli massivlarning alohida ko`rinishini ifodalaydi. U ko`p jihatlari bilan belgilarning bir o`lchovli ARRAY [0 .. N] of char massiviga o`xshab ketadi, lekin uning massivdan farqli tomoni shundaki, satr-o`zgaruvchida belgilar soni 0 dan N gacha (N-satrdagi belgilarning maksimal soni) o`zgaradi. N ning qiymati String [N] turni e`lon qilish bilan aniqlanadi va u 225 dan katta bo`lmagan ixtiyoriy tartib turidagi o`zgarmas bo`lishi mumkin. Turbo Paskal N ni ko`rsatmaslikka ruxsat beradi, bu holda satr uzunligi 255 ga teng, deb olinadi.
Satr Turbo Paskalda belgilar zanjiri deb tushuntiriladi. Satrning ixtiyoriy belgisiga bir o`lchovli ARRAY [0 .. N] of CHAR massiv elementiga murojaat qilganday murojaat qilish mumkin, masalan:
Do'stlaringiz bilan baham: |