















































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
ASİMPTOTİK NOTASYONLAR TETA OMEGA VE BÜYÜK O NOTASYONU
Typology: Lecture notes
1 / 87
This page cannot be seen from the preview
Don't miss anything!
On special offer
1
Algoritma Analizine Giriş Asimptotik Analiz Diziler İkili Arama 2
Derse devam zorunludur. Ders başlangıç saatlerine özen gösteriniz. Derse geç gelen öğrenci ara verilinceye kadar bekleyecektir. Her ders iki imza alınacaktır. Ödevler zamanında teslim edilecektir. Verilen tarihten sonra getirilen ödevler kabul edilmeyecektir. Ders esnasında lütfen kendi aranızda konuşmayın, fısıldaşmayın, mesajlaşmayın v.s. Dersi anlatan ve dinleyen kişilere lütfen saygı gösterin. Ders ile ilgili merak ettiğiniz her konuda soru sormaktan çekinmeyin. Cep telefonu v.b kişisel taşınabilir iletişim cihazlarınızı ders süresince mutlaka kapalı tutunuz.
Algoritma Nedir? Algoritma, bir problemin çözmek için bir prosedür veya formüldür. problemi çözmek için takip edilmesi gereken yönergeler kümesidir. matematikte ve bilgisayar biliminde bir işi yapmak için tanımlanan, bir başlangıç durumundan başladığında, açıkça belirlenmiş bir son durumunda sonlanan, sonlu işlemler kümesidir. Program Bir programlama dilinde algoritmanın gerçekleştirilmesidir.
Algoritmik çözüm Aynı algoritmik problem için farklı algoritmalar olabilir. Algoritmaların özellikleri nelerdir?
Algoritmaların Özellikleri
Algoritmaların Yönleri 1 - Algoritmaları Tasarlama Bulmacaların (puzzel) parçalarını birleştirme, Veri yapılarını seçme, Problemin çözümü için temel yaklaşımlar seçme. En popüler tasarım stratejileri böl ve fethet (divide&conquer), açgözlü(greedy), dinamik programlama, özyineleme (recursive). 2 - Algoritma ifadesi ve uygulanması Algoritmayı tasarladıktan sonra sözde kod (pseudocode) ifadesinin belirlenmesi ve problem için uygulanması Bu konudaki endişeler, netlik, özlülük, etkinlik vb.
Algoritmaların Yönleri 5 - Algoritma veya programı doğrulama
6 - Algoritmaların test edilmesi
Algoritma Tasarımı Algoritmaları tasarlamada kullanılacak yöntemler
Algoritmaları tasarlamada kullanılacak yöntemler: Bir veri yapısı icat etme O ana kadar var olamayan bir veri yapısının icat edilmesi ile problemin çözülmesine veri yapısı icat etme yöntemi denir. Bilinen probleme indirgeme Kompleks olan bir problemin çözümünü yapmak için çözümü bilinen bir veya birden fazla başka probleme dönüştürüp bu şekilde problemi çözme işlemine bilinen probleme indirgeme yöntemi denir. İhtimali (olasılıksal) çözümler Bazı durumlarda gelişigüzellik ilkesi ile etkili bir şekilde problem çözümü yapılabilmektedir. Bunlara örnek olarak Las Vegas polinom-zamanlı ve Monte Carlo polinom-zamanlı algoritmalar verilebilir. Gelişigüzellik kullanılarak yapılan problem çözümlerine ihtimali çözümler yöntemi denir. Yaklaşım çözümleri Çözümü deterministik Turing makinası ile yapılamayan yani karmaşık hesaplamaların belirli bir yöntem ile çözülemediği bu problemlerin bir kısmına bazı kriterler uygulayarak yaklaşım mantığı ile çözüm üretilebilmektedir. Bundan dolayı bu mantık ile yapılan algoritma tasarımına yaklaşım çözümler yöntemi adı verilir.
Algoritma Analizi
Kaynak denildiğinde, bellek, iletişim bant genişliği, mantık kapıları akla gelebilir, fakat en önemli kaynak algoritmanın icra edilebilmesi için gerekli olan zamanın tahmin edilmesidir.
Neden algoritmalar ve başarımla uğraşırız? Başarım (performans) genelde yapılabilir olanla imkansızın arasındaki çizgiyi tanımlar. Algoritmik matematik program davranışlarını açıklamak için ortak dil oluşturur. Başarım bilgi işleme 'nin para birimidir. Program başarımından alınan dersler diğer bilgi işleme kaynaklarına genellenebilir. Hız eğlencelidir!
Algoritmik Performans Algoritmik performansın iki yönü vardır:
Yönergeler veya talimatlar zaman alabilir. Algoritma ne kadar hızlı bir performans gösteriyor? Algoritmanın çalışma zamanını (runtime) ne etkiler? Bir algoritma için gerekli olan zaman nasıl tahmin edilir? Gerekli olan zaman nasıl azaltılabilir?
Veri yapıları yer kaplar. Ne tür veri yapıları kullanılabilir? Veri yapılarının seçimi çalışma zamanını nasıl etkiler?