le, kabarcık sıralaması her zaman ardışık iki değeri karşılaştırır. Taraf sıralaması ise bunun aksine aralarındaki mesafe birden çok daha fazla olan öğeleri karşılaştırabilir. (Kabuk sıralaması da aynı düşünceyle tasarlanmıştır ancak kabuk sıralaması kabarcık sıralamasının değil seçmeli sıralamanın bir türevidir.)

 function combsort11(array input)





Algoritma listesi

Bilgisayar bilimlerinde değişik amaçlarla pek çok algoritma kullanılır. Aşağıda Vikipedi'de bulunan algoritmaların listesi verilmiştir.







Fiziksel katman

Fiziksel katman, donanım katmanı veya 1. katman, verinin kablo üzerinde alacağı fiziksel yapıyı tanımlar. Bu katman verinin nasıl elektrik, ışık veya radyo sinyallerine çevrileceğini ve aktarılacağını tanımlar. Gönderen tarafta fiziksel katman bir ve sıfırları elektrik sinyallerine çevirip kabloya yerleştirirken, alıcı tarafta fiziksel katman kablodan okuduğu bu sinyalleri tekrar bir ve sıfır haline getirir.

Fiziksel katman veri bitlerinin karşı tarafa, kullanılan medya (kablo, fiber optik, radyo sinyalleri) üzerinden nasıl gönderileceğini tanımlar. İki taraf da aynı kurallar üzerinde anlaşmamışsa veri iletimi mümkün değildir. Örneğin bir taraf sayısal 1 manasına gelen elektrik sinyalini +5 volt ve 2 milisaniye süren bir elektrik sinyali olarak yolluyor, ama alıcı +7 volt ve 5 milisaniyelik bir sinyali kabloda gördüğünde bunu 1 olarak anlıyorsa veri iletimi gerçekleşmez.

Fiziksel katman bu tip çözülmesi gereken problemleri tanımlamıştır. Üreticiler (örneğin ağ kartı üreticileri) bu problemleri göz önüne alarak aynı değerleri kullanan ağ kartları üretirler. Böylece farklı üreticilerin ağ kartları birbirleriyle sorunsuz çalışır.

Bu katman için veri bit katarı olarak adlandırılır. Hat üzerinden aktarılacak 0 ve 1'lerin fiziksel olarak ne ifade edileceği bu katmanın görevidir. Bu katmanda çalışan donanımlar: fiber optik kablolar, radyo sinyal gönderici alıcılar, konnektörler ve tüm anahtarlardır.





Taşıma katmanı

Taşıma katmanı, ulaşım katmanı veya 4. katman (İngilizce. "Transport Layer") üst katmanlardan gelen veriyi ağ paketi boyutunda parçalara böler.

Taşıma katmanı alt katmanlar ("Transport Set") ve üst katmanlar ("Application Set") arasında geçit görevini görür. Alt katmanlar verinin ne olduğuna bakmandan karşı tarafa yollama işini yaparken üst katmanlar da kullanılan donanım ile ilgilenmeden verinin kendisi ile uğraşabilirler.






OSI modeli

Open Systems Interconnection (OSI) modeli ISO (International Organization for Standardization) tarafından geliştirimiştir. Bu modelle, ağ farkındalığına sahip cihazlarda çalışan uygulamaların birbirleriyle nasıl iletişim kuracakları tanımlanır.

İlk OSI standartları 1970’lerin sonlarında ve 1980’lerin başlarında ISO’nun TC 97 (Technical Committee 97), Enformasyon İşlemesi tarafından ortaya çıkartılmıştır. ISO, son OSI standardını 1984’te çıkartmıştır. Bu model kısa sürede kabul görerek yaygınlaşmış ve ağ işlemleri için bir kılavuz olmuştur.
OSI modeli öncesinde, işletmelerce kullanılan ticari ağların çoğunluğu belirli bir işletme tarafından belirli standartlara oturtulmamış teknolojiyle oluşturulmaktaydı. Örneğin IBM'in SNA ile DEC'in DECnet'i gibi. Bu ağların özellikleri, çoğunlukla yalnızca o üreticinin donanımının kullanılmasına izin verecek (ya da en azından başka ürünlerin bağlanmasını zorlaştıracak) biçimde tanımlanmıştı. Onlardan ayrı olarak OSI, çeşitli üreticilerin ürünlerinin bağlanabileceği bir ağ için, bir sektör etkinliği olarak ortaya çıkmıştır.

OSI Modeli herhangi bir donanım ya da bilgisayar ağı tipine göre değişiklik göstermemektedir. OSI'nin amacı ağ mimarilerinin ve protokollerinin bir ağ ürünü bileşeni gibi kullanılmasını sağlamaktır.
ISO standartlarının ağ üzerindeki iletişimi sağlarken karmaşık bir yol izlediği bir gerçektir. ISO standardı yedi katmana (alt göreve) ayrılmıştır. OSI modeli olarak bilinen bu yedi katman sağ tarafta gösterilmiştir.

Daha fazla kaynak erişimi için aşağıdan yukarıya doğru İngilizce karşılıkları: Physical Layer, Data Link Layer, Network Layer, Transport Layer, Session Layer, Presentation Layer, Application Layer

OSI modeli sayesinde bir cihazın ağ içinde veya ağ dışında nasıl görevlendirildiği kolaylıkla anlatılabilir. Gerek ağ içinde gerek ağ dışında veri iletimi için verinin mutlaka her katmandan geçmesi gerekir. Geçtiği her katmanda da veriye belli görevler yüklenir.

OSI katmanlarında veri iletimi için uygulama katmanından donanım katmanına(fiziksel katman) doğru giderken veriye her bir katmanda ayrı bir başlık eklenir. Veri karşıdaki bilgisayara ulaştığında donanım katmanından(fiziksel katman) uygulama katmanına doğru bu başlıklara göre gider. En son uygulama katmanına ulaştığında veri karşı bilgisayara ulaşmış olur.

X.200 önerisi 1 numaraları katman en alt katman olacak şekilde 1'den 7'ye numalandırılmış yedi adet katmandan oluşur.

Fiziksel katmanın başlıca özellikleri şunlardır:

Veri bağlantısı katmanı uç düğümler arası veri transferi sağlar. Fiziksel katmanda meydana gelebilecek hataları tespit eder ve bu hataları mümkün olduğunca düzeltir. Veri bağlantısı katmanı, fiziksel olarak bağlı iki cihaz arasında bağlantı kurmayı ve bu bağlantıyı sonlandırmayı sağlayan protokolü tanımlar. Ayrıca bu cihazlar arasındaki veri akış kontrolü için de protokol tanımlar.

IEEE 802, veri bağlantısı katmanını iki alt katmana ayırır:

Ağ katmanı, değişken uzunluklu veri dizilerinin(datagram) bir ağ düğümünden aynı ağa bağlı başka bir ağ düğümüne aktarımını sağlar. Mantıksal ağ adresini fiziksel makine adresine çevirir. Ağ, birden fazla düğümün bağlanabildiği bir ortamdır. Her düğümün bir adresinin olduğu, bağlı olan düğümlerin başka düğümlere veri iletimine izin veren ve sadece verinin içeriği ile hedef düğümün adresinin var olması koşuluyla başka düğümlere yönlendirilir. Eğer ağ katmanında çalışan bir düğümden, veri bağlantısı katmanında çalışan bir başka düğüme iletilen verinin boyutu fazla büyükse, ağ veriyi birkaç parçaya ayırır, parçaları ayrı ayrı gönderir ve gönderdiği düğümde bu parçaları tekrar birleştirir. Aynı zamanda böyle bir işlem yapmayıp hata raporu da gönderebilir. 

Ağ katmanında veri iletiminin güvenli bir şekilde gerçekleştirileceğinin garantisi verilmez. Ağ katman protokolü güvenli veri iletimi sağlayabilir ama böyle bir zorunluluğu yoktur.

Taşıma/iletim katmanı değişken uzunluklu veri dizilerinin(datagram) kaynaktan cihazdan hedef cihaza bir veya daha fazla ağ üzerinden servis kalitesini de koruyarak göndermeyi sağlar. Taşıma katmanı protokolüne örnek olarak, Internet Protocol(IP) üzerine inşa edilmiş olan Transmission Control Protocol(TCP) verilebilir.

Taşıma/iletim katmanı protokolü verilen bağlantı üzerinden gerçekleştirilen akış kontrolünü, paketlerin parçalara bölünüp birleştirilmesini ve hata kontrolünün güvenliğinden sorumludur. Taşıma katmanındaki bazı protokoller(Örneğin: TCP) bağlantıya dayalıdır. Protokolün bağlantı temelli olması sayesinde taşıma katmanı, parçalara bölünerek gönderilmiş olan paketlerden karşı tarafa ulaşamamış olanların yeniden gönderilmesini sağlar. Taşıma katmanı ayrıca karşı tarafa iletilen veriden sonra eğer bir hata oluşmamışsa başarı mesajı verir ve sonraki veriyi gönderir. Taşıma katmanı, uygulama katmanından aldığı veriyi paket haline getirir. Paketleme, büyük verileri küçük verilere bölme işlemidir.

Oturum katmanı, cihazlar arasındaki bağlantıları kontrol eder. Yereldeki ve uzaktaki bağlantıları kurabilir, yönetebilir ve sonlandırabilir. Oturum katmanı mesajlaşma kurallarından(full-duplex, half-duplex, simplex), uygulamalar arasındaki mesajlaşma kontrolünden, farklı birimlere gidecek verilerin gruplanmasından, mesajlaşmaya kalınan noktadan devam edilmesinden ya da yeniden alınmasından sorumludur. Oturum katmanı çoğunlukla uzak yordam çağrısını kullanan uygulama ortamlarında kullanılır.

Sunum katmanı, uygulama katmanındaki varlıkların arasındaki ortamı kurar. Bu katman eğer sunum servisi varlıklar arasında büyük bir veri eşleme sağlıyorsa uygulama katmanındaki varlıklar farklı sözdizimi(syntax) ve semantik kullansa bile bu ortamı sağlayabilir. Eşleme mevcutsa sunum servisi verileri sarmalayarak oturum protokolü verilerine dönüştürülür ve protokol yığınına iletir.

Bu katman uygulama ve ağ formatları arasındaki dönüşüm sayesinde verinin temsil edilme biçiminden(örn: şifreleme) bağımsızdır. Sunum katmanı, verileri uygulamaların kabul edeceği hale dönüştürür. Bu katman veriyi biçimlendirip şifreleyerek ağda gönderilmesini sağlar. Bu yüzden bu katmana sözdizim(syntax) katmanı da denildiği olur.

Uygulama katmanı son kullanıcıya en yakın olan OSI katmanıdır. Yani hem OSI uygulama katmanı hem de kullanıcı doğrudan yazılımla,uygulamayla etkileşimde bulunur. Bu katman iletişim bileşenini yürüten uygulamayla etkileşime girer. Bazı uygulamalar OSI modelin kapsamı dışına çıkabilir. Uygulama katmanı sayesinde iletişim kuran kişiler tanımlanır, kaynak kullanılabilirliğine karar verilir ve senkronize iletişim gerçekleştirilir. İletişim kuran kişiler tanımlanırken kişilerin bir uygulama üzerinden veri göndermek için gereken kimliğine ve kullanılabilirliğin yeterli olup olmadığına karar verir. Kaynak kullanılabilirliğine karar verirken, uygulama katmanı ağın yeterli olup olmadığına ya da istenilen bağlantının var olup olmadığına karar vermelidir. İletişim senkronize edilirken uygulamalar arasındaki tüm iletişim, uygulama katmanı tarafından sağlanan iş birliğine ihtiyaç duyar. Bu katman uygulama ve son kullanıcı işlemlerini destekler. İletişimde bulunan kişiler ve servis kalitesi tanımlıdır, kullanıcı yetkilendirme ve gizlilik dikkate alınır ve de verinin sözdizimi ile ilgili kısıtlamalar da yine tanımlıdır. Bu katmandaki her şey uygulamaya özgüdür. 

TCP/IP ise böyle bir kısıtlama getirmediğinden,gerektiğinde yeni bir protokol mevcut katmanlar arasına rahatlıkla yerleştirilebilir.

TCP/IP protokollere örnek olarak, dosya alma/gönderme protokolü (FTP, File Transfer Protocol), Elektronik posta iletişim protokolü (SMTP Simple Mail Transfer Protocol