Masivlarni tashkil etish
Download 433 Kb.
|
- Bu sahifa navigatsiya:
- Massivlarni birlashtirib saralash algoritmi 17 Birlashmali saralash
- WriteLine
- FOYDALANILGAN ADABIYOTLAR
- INTERNET SAYTLAR.
2.2 2-rasm. Bog‘langan ro‘yxatlar konkatenatsiyasi
Taqqoslanma saralashlarning bajarilish vaqtlari. Qo‘yish usuli. Agar ichki siklga qarasak yozuvlarning tartiblangan qismiga qo‘shilgan element qolgan elementlardan kichik bo‘lsa operasiyalar eng ko‘p bajariladi. Bu holda location o‘zgaruvchisi 0 ga teng bo‘lganda sikl o‘z ishini tugatadi. SHuning uchun yangi element massiv boshiga qo‘shilganda algoritm eng ko‘p bajariladi. Bunday holat joriy massivning elementlari kamayish tartibida joylashgan bo‘lsa bo‘lishi mumkin. Bu yomon holatlardan biridir. Bunday massivni qayta ishlash jarayoni qanday bo‘lishini ko‘rib chiqamiz. Birinchi massivning ikkinchi elementi qo‘yiladi. U faqat bitta element bilan solishtiriladi. Ikkinchi qo‘yiladigan element (tartib buyicha uchinchi) oldingi ikkita element bilan, uchinchi qo‘yilgan element oldingi uchta element bilan solishtiriladi. Umuman olganda i - qo‘yiladigan element oldingi i ta element bilan solishtiriladi va bu jarayon N-1 marta takrorlanadi. 2.3 Massivlarni birlashtirib saralash algoritmi 17 Birlashmali saralash (Merge Sort) algoritmi asosiy beshta saralash algoritmlari (pufakchali saralash, tezkor saralash va boshqalar) dan biri bo`lib, chiziqli saralash algoritmlaridan farqli ravishda "bo`lib tashla va hukmronlik qil" tipidagi algoritm hisoblanadi. Bu tipdagi algoritmlar katta hajmdagi masalalarni nisbatan kichik bo`lgan va oson yechiladigan qismlarga ajratgan holda bajaradi. Bunday algoritmlar masalalarni hal qilishda vaqtdan katta yutuq qilish imkonini beradi. Birlashmali saralashda biz berilgan massivni uzunligi faqat 1 elementga teng bo`lgan qismlar qolmaguncha o`rtasidan ajratamiz. Keyin bu qismlar to`g`ri tartibda birlashtiriladi. using System; namespace Asosiy { static void Main(string[] args) {
Console.WriteLine("Nechta harflarni saralaymiz?"); int N = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Saralanishi kerak bo'lgan harflarni kiriting:"); char[] mas=new char[N]; for (int i = 0; i < mas.Length; i++) { mas[i] = Convert.ToChar(Console.ReadLine()); } char temp; for (int i = 0; i < mas.Length; i++)
{ for (int j = i + 1; j < mas.Length; j++) { if (mas[i] > mas[j])
18
{ temp = mas[i]; mas[i] = mas[j]; mas[j] = temp; }
} }
Console.WriteLine("Saralashdan keyin:"); for (int i = 0; i < mas.Length; i++) {
Console.WriteLine (mas[i].ToString()); }
Console.ReadKey(); }
} }
19
2.3 1-rasm. Dastur algoritmini ko’rib chiqamiz:
Boshlash Nechta
24
21
mas[i] Tamom XULOSA Men ushbu LOYHA ishini yozish davomida Algoritmlar nazaryasi fanini va dasturlash texnalogiyalarini ya’ni dasturchilikni o’rganishda algoritmlar nazaryasi fanini dasturlash tillariga bog’lashni, dasturlarning algoritmlarini tuzishni o’rganishga bo’lgan bilimlarni egallashda katta poydevor bo’ldi. BU LOYHA ishi orqali bilim va ko’nikmalarimni oshirib oldim, men kelajakda ushbu bilimlarimni rivojlantirib yetuk mutaxasis bo’lishga harakat qilaman. Saralash orqali ko’p masalalarni hal qilsa bo’ladi. Katta-katta masalalarni oddiy va sodda qilib ishlab chiqsa bo’lar ekan. Bu kurs ishi orqali saralashning 22
qanchlik qiziqarli va samarali mavzu ekanligini bildim. Bundan tashqari juda ko’p yangi usullar orqali saralash bilan turli xil chiroyli va qiziqarli masalarni hal qilish, va shu kabi misollarni tez bajara olish qobilyatini hosil qildim. Bu LOYHA ishi orqali men mustaqil oddiy saralashlarni hal qiladigan dasturlar tuza olish qobilyatiga ega bo’ldim. Kundalik hayotimizda juda ko’p qo’llaniladigan saralash har doim har bir ishimizda foydalanamiz. O’ylaymanki bu LOYXA ishi dasturlash olamiga kirib borishimga katta poydevor vazifasini o’tab beradi. 23
FOYDALANILGAN ADABIYOTLAR Абрамов С.А. и др. Задачи по программированию.-М.:Наука,
Вирт Н.. Алгоритмы и структуры данных. – Досса, Хамарайан, 1997.
5. Кнут Д. Искусство программирования для ЭВМ.
Основные
алгоритмы.-М: Мир, 2000 г. 6. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы:
построение и анализ. М.: МЦНМО, 2001.- 960 с. Лебедев В.И. Введение в системы программирования. М: Статистика, 1975 Поляков Д.Б., Круглов И.Ю. Программирование в среде Turbo Pascal: Справ.-метод. пособие.- М.: Изд-во МАИ, 1992.-576 с. Попов В.В. Общение с ЭВМ на естественном языке. М:Наука, 1982. 10.Тыугу Х. Концептуальное программирование. М: Наука, 1984. 11.Успенский В.А., Семенов А.Л.. Теория алгоритмов: основные открытия и приложения. М: Наука, 1987, 287 с. 12.Файсман А. Профессиональное программирование на ТурбоПаскале.- Info&F, 1992.-270 стр. INTERNET SAYTLAR. http:\\acm.tuit.uz http:\\Referat.arxiv.uz http:\\Ziyonet.uz http:\\dastur.uz http://fayllar.org 24 Download 433 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling