Programlama dünyası dünyanın en iyi 10 algoritmasına hükmediyor, kaç tanesini biliyorsunuz?

Kaynak: Ders Grafiği Blogu

Bu makale hakkında 2300 kelime , Okumanız tavsiye edilir 9 dakika

Bu makale sizi programlamada dünyaya hakim olan ilk on algoritmaya götürür.

Algoritma tam olarak nedir?

Kısacası, bir algoritma, girdiyi çıktıya dönüştürmek için kullanılan iyi tanımlanmış bir hesaplama sürecini temsil eder.

Algoritmanın belirli bir problemi çözmek için kullanılan bir dizi adım olduğu anlaşılabilir (sadece bilgisayarlar algoritmalara ihtiyaç duymaz, biz de günlük hayatımızda algoritmalar kullanırız). Mevcut bakış açısından, yalnızca aşağıdaki üç özelliğe sahip algoritmaların gerçek etkileri vardır:

  • Fakirlik: Sınırlı sayıda adım gerçekleştirdikten sonra, algoritma sona ermelidir;
  • Kesinlik: Algoritmanın her adımı tam olarak tanımlanmalıdır;
  • fizibilite: Belirli bir algoritmanın belirli bir sorunu belirli bir süre içinde çözebilmesi gerekir.

Ayrıca algoritmaların uygulanmasının bilgisayar bilimleriyle sınırlı olmadığı, matematiksel bir varlık olarak da vurgulanmalıdır. MÖ 1600 gibi erken bir tarihte, Babilliler çarpanlara ayırma ve karekök bulma algoritmalarını keşfettiler. Algoritmalar matematiksel varlıklar olarak kabul edilirse, o zaman dünyaya hakim olan ilk on algoritma büyük olasılıkla aritmetik yöntemlerdir (toplama, çıkarma, çarpma, bölme vb.).

Bu makaledeki algoritma tanımına göre dünyaya hakim olan on algoritma nedir? Burada belirli bir sıra olmadan küçük bir liste yaptım.

Sıralama, hızlı sıralama ve yığın sıralamayı birleştirme

En verimli sıralama algoritması hangisidir? Bu ayrı ayrı tartışılmalıdır. Bu yüzden bu üç algoritmayı bir araya getirdim, bunlardan birini daha sık kullanabilirsiniz, ama aslında, üçü de önemli.

Birleştirme algoritması şu ana kadar sahip olduğumuz en önemli algoritmalardan biridir ve 1945 yılında matematikçi John von Neumann tarafından icat edilen böl ve yönet yönteminin tipik bir uygulamasıdır.

Hızlı sıralama algoritması, ayarlanan bölümleme algoritmasını ve böl ve yönet algoritmasını birleştirir Algoritma çok kararlı olmamasına rağmen, bellek tabanlı dizileri sıralarken çok iyi performans gösterir.

Sonuncusu, sıralama sırasında arama süresini azaltmak için öncelikli bir kuyruk mekanizması kullanan ve aynı zamanda çok kararlı olmayan yığın sıralamasıdır.

Bununla birlikte, önceki balon sıralamasına kıyasla, bu algoritmalar büyük ölçüde iyileştirildi. Bu algoritmalar sayesinde günümüzün veri madenciliği, yapay zeka, bağlantı analizi ve çoğu web hesaplama aracı mevcuttur.

Fourier dönüşümü ve hızlı Fourier dönüşümü

Bu iki algoritma basit ama oldukça güçlüdür.Tüm dijital dünya onlarsız yapamaz.Bunların işlevi, zaman bölgesi fonksiyonları ve frekans bölgesi fonksiyonları arasındaki karşılıklı dönüşümü gerçekleştirmektir. Bu makaleyi okumak aynı zamanda bu algoritmaların bir nimetidir.

İnternet, WIFI, akıllı telefonlar, sabit hatlar, bilgisayarlar, yönlendiriciler, uydular vb. Gibi bilgisayarla ilgili neredeyse tüm cihazlar aşağı yukarı onlarla ilgilidir. Bu iki algoritma olmadan, elektronik, bilgisayar veya iletişim mühendisliği alanında asla bir derece alamazsınız.

Dijkstra algoritması

Böyle bir algoritma yoksa İnternet'in kesinlikle şu anki kadar verimli olmadığı söylenebilir. Problem "grafik" modeliyle temsil edilebildiği sürece, bu algoritma "grafik" te iki düğüm arasındaki en kısa mesafeyi bulmak için kullanılabilir.

En kısa yol problemini çözmenin birçok daha iyi yolu olmasına rağmen, Dextor algoritmasının kararlılığı değiştirilemez.

RSA asimetrik şifreleme algoritması

Bu algoritmanın kriptografiye ve ağ güvenliğine katkısı olmadan, internetin durumu bugün o kadar yüksek olmayabilir. Mevcut İnternet güvensiz, ancak parayla ilgili sorunlarla karşılaştığımızda yeterli güvenliği sağlamalıyız.Eğer internetin güvensiz olduğunu düşünüyorsanız, banka kartı bilgilerinizi web sayfasına kesinlikle aptalca girmeyeceksiniz.

Kriptografi alanındaki en güçlü algoritmalardan biri olan RSA algoritması, güncel anahtar araştırma alanını kuran RSA'nın üç kurucusu tarafından önerildi. Bu algoritma ile çözülen problem basit ve karmaşıktır: güvenliği sağlarken bağımsız platformlar ve kullanıcılar arasında anahtarların nasıl paylaşılacağı.

Güvenli Karma Algoritma (Güvenli Karma Algoritması)

Kesin olarak, bu bir algoritma değil, ilk olarak Ulusal Standartlar ve Teknoloji Enstitüsü tarafından önerilen bir dizi kriptografik karma işlevidir. Uygulama mağazanız, e-posta ve antivirüs yazılımınız veya tarayıcınız vb. Olsun, tümü bu algoritmayı normal bir şekilde indirmenizi sağlamak için ve "ortadaki adam saldırısı" veya "kimlik avı" olmanızı sağlamak için kullanır.

Tamsayı çarpanlara ayırma algoritması (Tamsayı çarpanlara ayırma)

Bu aslında matematiksel bir algoritmadır, ancak bilgisayar alanında yaygın olarak kullanılmaktadır. Bu algoritma olmadan, kriptografi teknolojisinin güvenlik seviyesi ciddi şekilde zarar görür. Bu algoritma, bileşik sayının asal faktörünü sıfır olmayan daha küçük faktörlere ayırmak için kullanılır. FNP tipi problemler olarak da bilinen NP tipi problemlerin bir uzantısıdır ve çözülmesi son derece zordur.

Az önce bahsedilen RSA algoritması gibi birçok şifreleme protokolü bu algoritmayı kullanır.

Bağlantı Analizi Algoritması (Bağlantı Analizi)

İnternet çağında, farklı portallar arasındaki ilişkinin analizi çok önemlidir. Arama motorları ve sosyal ağ sitelerinden pazar analizi araçlarına kadar, İnternetin gerçek yapısını bulmak için tüm çabalar harcanmaktadır.

Bağlantı analiz algoritması, farklı uygulama yöntemleriyle her zaman bu alandaki en kafa karıştırıcı algoritmalardan biri olmuştur ve kendi özellikleri, her bir uygulama yönteminin algoritmasını yabancılaştırmaktadır, ancak temel ilkeler çok benzerdir.

Bağlantı analizi algoritmasının mekanizması aslında çok basittir: Bir özdeğer problemi oluşturmak için bir "grafiği" temsil etmek için bir matris kullanabilirsiniz. Özdeğer problemi bu "grafiğin" yapısını ve her bir düğümün ağırlığını analiz etmenize yardımcı olabilir. Bu algoritma, 1976'da Gabriel Pinski ve Francis Narin tarafından önerildi.

Bu algoritmayı kim kullanır? Facebook size bir bilgi akışı gönderdiğinde Google'ın sayfa sıralaması (bu nedenle bilgi akışı bir algoritma değil, bir algoritmanın sonucudur), Google+ ve Facebook'un arkadaş önerisi işlevi, LinkedIn'in iş önerisi, Youtube'un video önerisi vb. Farklı hedefleri ve parametre kombinasyonları olmasına rağmen, arkasındaki matematiksel ilkeler aynıdır.

Son olarak, pek çok kişinin genel olarak Google'ın bu tür algoritmayı kullanan ilk kuruluş olduğunu düşündüğünü söylemek istiyorum, ancak aslında 1996 gibi erken bir tarihte (Google ortaya çıkmadan 2 yıl önce), Robin Li bu fikri kullanan "RankDex" küçük arama motorunu yarattı. Ve Hiper Arama arama algoritması yaratıcısı Massimo Marchioli de benzer bir algoritma kullandı. Bu adamların ikisi de daha sonra Google'ın tarihinde efsane oldu.

Orantılı Hesap Algoritması

Bu algoritma uçaklarda, arabalarda, TV'lerde, cep telefonlarında, uydularda, fabrikalarda, robotlarda ve benzerlerinde bulunur.

Basit bir ifadeyle, bu algoritma esas olarak önceden ayarlanmış çıkış sinyali ile gerçek çıkış sinyali arasındaki hatayı azaltmak için "kontrol döngüsü geri besleme mekanizmasını" kullanır. Otomatik makine, hidrolik ve ısıtma sistemlerini kontrol etmek için sinyal işleme veya elektronik sistemlere ihtiyaç duyulduğu sürece, bu hesaplama yöntemine ihtiyaç vardır. Onsuz, modern bir medeniyet olmazdı.

Veri sıkıştırma algoritması

Birçok veri sıkıştırma algoritması var, hangisi en iyisi? Uygulama yönüne bağlıdır, sıkıştırılmış mp3, JPEG ve MPEG-2 dosyaları aynı değildir.

Onları nerede görebilirim? Sadece klasörlerdeki sıkıştırılmış dosyalar değil. Görüntülemekte olduğunuz web sayfası, bir veri sıkıştırma algoritması kullanarak bilgileri bilgisayarınıza indirmektir. Metin, oyunlar, videolar, müzik, veri depolama, bulut bilgi işlem vb. Çeşitli sistemleri daha kolay ve daha verimli hale getirir.

Rastgele sayı üretme algoritması

Şimdiye kadar, bilgisayarlar "gerçek" rasgele sayılar üretemediler, ancak sözde rasgele sayı üretme algoritmaları yeterlidir. Bu algoritmaların ağ bağlantıları, şifreleme teknolojisi, güvenli hash algoritmaları, çevrimiçi oyunlar, yapay zeka ve problem analizinde koşullu başlatma gibi birçok alanda uygulamaları vardır.

sonuç olarak

Genel olarak, bilgisayarların gelişimi, uygulamaların ve verilerin hızlı büyümesi ortamına girdiğinde, algoritmaların öneminin azalmadığını, ancak arttığını görürüz.

Bu makalenin bağlantı adresi:

İstatistikler açık sınıf envanteri

Editör: Yu Tengkai

-Bitiş-

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

Liberal sanat öğrencileri tarafından anlaşılabilecek makine öğrenimi dersleri: gradyan iniş, doğrusal regresyon, lojistik regresyon
önceki
Bir bakışta 2020 trendleri: AutoML, birleşik öğrenme ve bulut oligarkları çağının sonu (bağlantı)
Sonraki
Derin öğrenmede anlamanız gereken 13 olasılık dağılımı
"Şehri kapatmaktan" daha iyi, medya raporları salgının yayılmasını büyük ölçüde azaltabilir
kapsamlı! Karar ağaçlarını nasıl görselleştireceğinizi öğretin (bağlantı kodu ile)
Reddit oylaması: 2019'da kaçırmamanız gereken makine öğrenimi belgeleri
Pekin Üniversitesi Matematik Bölümü'nden mezun olan UIUC Yardımcı Doçent, 60 sayfalık kağıt inceleme derin öğrenme optimizasyonu
Musk, insan uzay uçuşunda yeni bir başarı yaratıyor! Roket havaya uçtu ve insanlı kabin başarıyla kaçtı
Ortak kayıp fonksiyonlarının ve değerlendirme göstergelerinin özeti (kodlu)
Ciddiyetini kaybeden anne, Ali'den yardım ister: Ölen kızını yapay zekaya dönüştür ve 3 ay sonra kızının sesini yeniden üret
Yüz tanıma siyah teknolojisinin gerçek tehlikesi nedir?
Makine öğrenimi matematiğini ve teorik temeli geliştirmek için 7 kitap (makalenin sonunda kaynaklarla birlikte indirin!)
Yang Qiang kimdir? Huawei Noah's Ark Lab'in kurucusu AAAI'nin ilk Çinli başkanı
Xia Ke Adası: Avustralya'nın orman yangınları dört aydır şiddetleniyor. Nedeni nedir?
To Top