Programların Verimliliği – Bilgisayar Bilimleri Ödevleri – Bilgisayar Bilimleri Ödev Hazırlatma – Bilgisayar Bilimleri Alanında Tez Yazdırma – Bilgisayar Bilimleri Ödev Yaptırma Fiyatları
Programların Verimliliği
Bir programlama problemi, tamamı spesifikasyona tam olarak uyan çeşitli çözümleri kabul edebilir. Yine de, birini diğerine karşı güçlü bir tercihimiz olabilir. Şimdiye kadar programlar arasında ayrım yapmak için en uygun kriter, onları yürütmek için geçen süredir.
Ancak aşağıdaki örnekte görüldüğü gibi bu konularda dikkatli olunmalıdır. Her biri programlama problemimizi çözen PA ve PB olmak üzere iki programımız olduğunu varsayalım. Kullanılabilir iki makinemiz var ve iki programın yürütme sürelerinin ölçülmesi, bunların MA’da sırasıyla 3 ve 6 saniye ve MB’de 6 ve 3 saniye sürdüğünü ortaya koyuyor.
İki programdan hangisi daha verimli? Kabaca aynı oldukları veya makineye bağlı olduğu söylenebilir, ancak PA’nın PB’den %25 daha hızlı olduğunu söylemek mantıklı değildir. Yine de, bazı program üreticileri (veya simetrik olarak makineler) buna inanmanızı istiyor.
İşte izledikleri mantık şudur. Bu mutlak zamanlamaları karşılaştıramayız, önce norm haline getirilmeleri gerekir. Bu, bir programın zaman 1 (birim yok) aldığının söylendiği ve her şeyin buna göre ölçeklendiği anlamına gelir. PA norm olsun; ilk sütundaki zamanlamaları 3 saniyeye, ikinci sütundaki zamanlamaları 6 saniyeye bölün.
Ardından, tüm makinelerin ortalamasını alarak her programın ortalama yürütme süresini hesaplayın. Tablonun incelenmesi, PB’nin yürütülmesinin %25 daha uzun sürdüğünü göstermektedir. Argümanın su tutmadığını gördüğünüze inanıyorum, ancak literatürde defalarca uygulandı, çoğunlukla farklı bilgisayarlarda bir dizi sözde kıyaslama programlarının çalıştırıldığı ve bir bilgisayarın yapıldığı durumda. tam olarak burada verilen argümanla en iyi şekilde ortaya çıkmak gerekir.
Bir makine seçerek ve programları karşılaştırırken ona bağlı kalarak bu tuzaktan kaçınmaya çalışılabilir. Ancak, sonuçların başka bir makineye geçmesi her zaman böyle değildir. Bu nedenle, programları gerçek makinelerin ayrıntılı özelliklerine daha az bağımlı olacak şekilde karakterize etmek daha caziptir.
Bu durumda, göreceli hızları bu tür özelliklere bağlı olan bazı programların verimliliği arasında ayrım yapamamamız kaçınılmazdır. Öte yandan, böyle bir karakterizasyon, bir programın verimliliği hakkında, ölçülen veriler tablosundan daha fazla fikir verebilir.
En çok indirilen programlar
Windows 7 programları
Bilgisayara program yükleme
P programı indir
İşte sıklıkla kullanılan karakterizasyon. Programın yürütme süresini belirleyen ana (veya tek) parametre olan bir doğal sayı bulun. Örneğin, n tam sayıdan oluşan bir dizinin tüm öğelerini sıfıra ayarlamak, n ile orantılı olarak zaman alır.
Bir makinede 29n + 7 mikrosaniye ve diğerinde 16n + 41 nanosaniye olabilir. Toplama ve çarpma sabitlerini göz ardı ederek, programın yürütme süresinin O(n) olarak yazılan n mertebesinde olduğunu söylüyoruz.
Resmi olarak, O(g(n))’nin, bir a sabiti ve yeterince büyük tüm n için, doğallardan a · g(n) ile sınırlanan doğallara kadar tüm /(n) fonksiyonlarının kümesi olduğu tanımlanır.
Büyük-0 kavramı daha önce sahip olduğumuz sabitleri göz ardı ettiği için, gerçek yürütme süreleri hakkında endişelenmemize gerek yoktur, ancak dikkatimizi bir programı yürütmek için gereken adım sayısıyla sınırlayabiliriz. Ve adım sayısı bile gevşek bir şekilde atılabilir.
Bir adımın bir değişkene bir referans mı, yoksa bir atama mı, yoksa bir ifadenin değerlendirmesi mi yoksa tüm bu eylemlerin birleşimi mi olduğu konusunda endişelenmemize gerek yok, çünkü her durumda adım sayısı n’nin bir fonksiyonu olarak ortaya çıkıyor. O(n) içindedir.
Jargon, programın karmaşıklığının O(n) olduğunu söyler. Karmaşıklık kelimesinin bu kullanımının programın yapısının karmaşıklığıyla veya doğruluğunun dayandığı matematik teoremlerinin karmaşıklığıyla hiçbir ilgisi yoktur. Yürütme süresi için başka bir kelimedir.
(Kenara) Bazen literatürde 3n+4 E O(n) yerine 3n + 4 = O(n) gibi ifadeler görürsünüz. Bu korkunç bir hatadır, çünkü eşitliğin simetrisini ve ilişkilendirilebilirliğini yok eder ve artık “eşittir yerine eşittir” ifadesini kullanamazsınız: 3n+4=O(n) ve 4n+5 = O(n) ima etmez 3n+4= 4n + 5.
(Başka bir yana) Bazen literatürde 0’ın tanımında 1/(n)l a · g(n)’yi görürsünüz. Genel olarak, bu aslında daha iyi, ancak bu bölümde herhangi bir olumsuz işlevimiz yok.
Büyük-0 kavramını kullanımı kolay ve gerçek makinenin ayrıntılarından bağımsız kılan, sabitleri gizleme özelliğidir. Üstün bir büyük-0 performansına sahip programların pratikte de daha iyi olduğu ortaya çıktı, ancak bu yalnızca kişi büyük problemler yürütmekle, yani programı büyük n değerleri için yürütmekle ilgileniyorsa doğrudur. Bu genellikle böyledir.
İşte başka bir örnek. Dizide bir yerde geçen arar y a[O..n – 1] tamsayısı ve x tamsayısı verildiğinde, i tamsayısına x’in a’da geçtiği bir dizin atayın.
Yürütme süresi büyük ölçüde dizide x’in bulunduğu konuma bağlıdır. 1 adımdan n adıma kadar herhangi bir şey olabilir. Yürütme süresi 0(1) mi yoksa O(n) mi? Değişir, ancak en kötü durumda O(n)’dir.
En kötü durum karmaşıklığının tahmin edilmesi, örneğin ortalama durum karmaşıklığından genellikle daha kolaydır. Bazı problemlerde tamamen işe yaramaz olabilir, çünkü en kötü durum neredeyse hiç gerçekleşmeyebilir, ancak kesinlikle güçlü garantiler veren odur. Bu nedenle en kötü durum karmaşıklığı, en sık karşılaşacağınız karmaşıklıktır.
Arama için Alt Sınır
Doğrusal aramanın en kötü durum karmaşıklığının O(n) olduğunu az önce gördük. Dizinin sıralandığı özel durum için ikili arama adı verilen daha verimli bir algoritmayı tartıştık. En kötü durum karmaşıklığı O(log(n)) şeklindedir. Büyük-0 kavramındaki sabitler nedeniyle, logaritmanın tabanının 2 veya 10 veya başka bir sabit olması fark etmez.
Bu bölümde hiçbir algoritmanın ikili aramadan daha iyisini yapamayacağını, yani O(log(n))’den daha düşük bir en kötü durum karmaşıklığına sahip hiçbir algoritmanın bulunmadığını gösteriyoruz. Elbette, logaritmanın önünde daha düşük bir sabit çarpanı olan algoritmalar bulmak mümkün olabilir, ancak bunlar büyük-0’da gizlidir.
Yine de bir varsayımda bulunmalıyız: Bir programın verilen diziden ve bulunacak sayıdan herhangi bir türde bilgi çıkarabilmesinin tek yolu, iki yönlü karşılaştırmalar yapmaktır. Dizinin iki öğesini karşılaştırabilir veya bir dizi öğesini aranan sayıyla karşılaştırabilir veya başka herhangi bir şeyle karşılaştırabilir. Bir karşılaştırmanın çıktısı doğru veya yanlıştır ve şuna benzer bir şey değildir.
Bilgisayara program yükleme En çok indirilen programlar P programı indir Windows 7 programları