1 Temmuz 2011, Cuma

Ekleme Sıralama Algoritması

Ne bu video yapmak istiyorum Ben daha sezgisel yollarından biri olduğunu düşünüyorum gitmek Bir listeyi sıralamak için. Ben elle yapmak zorunda ben muhtemelen, sıralamanız gerekir nasıl. Ama en etkili yolu değil, açıklığa kavuşturmak istiyorum Bir listeyi sıralamak için. Ben ısınıyorum için iyi bir başlangıç ​​noktası olduğunu düşünüyorum sıralama listeleri ile. Bu insertion_sort denir. Ve ben bir grafik açıklamasını vereceğim insertion_sort için algoritma. Ve sadece bu yüzden ne, biliyor algoritma çok süslü bir kelime, ama bir algoritma gibi sesler , sadece sıralama bir yolu ya da bunu yapmak i

çin bir süreç gerçekten ya da yapmak için bir yönteme ilişkindir. Bir program bir algoritma belirli bir uygulamasıdır, ya da bir algoritma belirli bir uygulama olabilir. Ben genel bir algoritma var, Python bunu uyg

ulayabilir. Ben Java'da uygulamak olabilir C. uygulamak başladı. Bunlar belirli programlardır. Ama her tür yapmanın aynı şekilde uygulanması olurdum. Ve bu, ben burada tarif ediyorum ne inserti

“Ekleme sıralama algoritması Görsel açıklaması...”
Khan Academy

on_sort algoritması. Yani sadece basit bir örnekle başlayalım. Diyelim ki bir listesi var diyelim. En biz çünkü ben, bir Python listesi var diyelim Bunun için Python çalışıyor olacak. Ve bu liste, bu 7, 3, 1, 2, 4, 6, diyelim ki bir. Ve böylece şekilde biz insertion_sort yapmak Eğer eleman eleman gidin. Ve sonra ondan önce elemanlara karşılaştırın. Ve sonra daha önce ilk öğe aramak o aslında daha azdır. Ve sonra sadece sağ oraya yapıştırın. Yani ba

Ekleme Sıralama Algoritması Resim 1 Ekleme Sıralama Algoritması Resim 2 Ekleme Sıralama Algoritması Resim 3 Ekleme Sıralama Algoritması Resim 4

na neden bahsettiğimi göstereyim. Yani buraya 7, 0-inci elemanı ile başlayabiliriz. Ama bir 0-th elemanı ile başlattığınızda, Eğer bir şey yok, hey, bekle, gibisin ondan önce de karşılaştırmak. Bu yüzden gerçekten 0-inci elemanı ile başlamak mantıklı değil. Yani gerçekten, bu algoritmayı uygulamak için olsaydı, Üçüncü elemanı ile başlayacağız. Yoksa üzgünüm, sen bu 0-inci elemanı olup olmadığı Şarkı söylemeyi kes başlayacağız sağ buraya ilk öğe ile başlamak istiyorum. Bu 0-th ise, bu ilk. Ben bu biraz kafa karıştırıcı olabilir biliyor

um Eğer ilk elemanı olarak bakın. Ama bu bir 0-th var. Yani burada bu 3 ile başlar. Ve sonra tüm öğeleri karşılaştırarak başlamak ondan önce. Ve 3 daha az olduğunu, bir öğeyi bulmak en kısa sürede, Listenin bu bölümünde sopa. Yani tamam, 7 daha az 3'tür demek olduğunu sen ne? Evet, daha az 7'dir. Yani ne yapmak istediğinizi size 3 olduğu 7 kaydırmak istiyor olduğunu. Yani beni burada bunu koyalım. Bu yüzden şu anda daha önce her şeyi 3 karşılaştırmak için çalışıyoruz. Yani tamam, 7 den en az 3 olduğunu söylüyorlar? Evet, az 7'dir. Yani 3 nerede en 7 koyalım. Ve özellikle, 7 nereye koyalım 3 hiçbir şey çünkü 3 karşılaştırmak için sol. 0-inci elemanı önce hiç unsurlar var, o yüzden sadece sağ orada 3 dönelim. Ve böylece bizim liste şimdi bu gibi görünüyor. Bizim liste şimdi görünüyor 3, 7, 1, 2, 4, ve 6 gibi. Ve bir şey, ilginç bulacaksınız ya dikkat etmek bir şey, 0-th eleman şimdi bu yüzden biz bu list-- inşa gibidir birinci elemanın daha kesinlikle daha az. Ve her şey birinci elemanın kadar ve dahil Şimdi sıralanır. Bu geçiyor tutmak gibi Ve bu, doğru olacaktır. Biz kadar yüksek ve daha yüksek indeksler geçiyor tutmak gibi ve bu indeks içeren yaptık sonra Bu geçiş sıralanacaktır. Ve biz geçinmek gibi işaret çalışacağım. Bu yüzden ilk dizin yaptık. Yani biz zaten ilk indeksi yaptım. Şimdi ikinci elemana taşıyabilirsiniz, hangi buraya bu 1'dir. Ve böylece 1 take that. Birazdan buraya tarafta koyacağım. Bunu 1 almak ve öğelerinin her karşılaştırın ondan önce. Tamam, 7 den 1 azdır? Tabii, 1 az 7 olduğunu. Yani 1 nerede en 7 dönelim. Ve sonra sadece karşılaştırma tutmak, 7 olduğu ya da sadece 1 sopa olabilir. Ve sonra, tamam 3 den az 1, derdi? Emin, evet, evet. Bu 3'ten az. Yani 1 nerede en 3 dönelim. Ve 3 nerede en 1 etsinler. Yani bizim liste şimdi nedir? Bizim liste şimdi 1, 1, 3, 7, 2, 4, 6 gibi bakmaya gidiyor. Biz çok n'inci indisini kazanılmış yaptıktan sonra bu yüzden fark Bu durumda, bu 2 indeksi oldu nerede 1 sağ orada-- her şeyin üzerinde olduğunu ve dizin sıralanır de dahil olmak üzere. Burada bu bölümü sıralanır. Diğer şeyler, muhtemelen, burada atılmış olacak biz gitmek gibi. Ama şimdiye kadar, bu bölümü sıralanır. Yani biz bu listenin sonuna almak zaman görebilirsiniz, herşey sıralanmış olacak. Yani şimdi bir sonraki endeksine gidelim, ya da listedeki bir sonraki öğe. Ve burada üzerinde bu 2 olduğunu. Ve böylece biz 7 2 karşılaştırın. 2 7'den kesinlikle daha az, bu nedenle en koyalım 2 7 7 olduğu en 2 koyalım ve. Şimdi 3 2 karşılaştırın. 2 daha az 3'tür. Yani 2 nerede en 3 koyalım ve atalım 3 olduğu 2 koyun. Sonra 1 2 karşılaştırın. 1 2 daha düşük mü? Hayır, bu 1'den az, bu yüzden başka bir şey yapmak zorunda değilsiniz. Biz sola devam etmek zorunda değilsiniz. Ve şimdi, bu geçişte pass-- sonra, Ondan önce her şeyi bu 2 maddeyi karşılaştırarak bulundu. Yani bu geçişten sonra, bizim liste bu gibi görünüyor. Bizim liste 1, 2, 3, 7, 4, 6 gibi görünüyor. Ve, ve üçüncü madde dahil olmak üzere her şeyi fark yani 1 2, üçüncü öğe 0-th, şimdi sıralanır. Ve şimdi biz listedeki bir sonraki elemana bakmak için hazırsınız. Ve bir şey açıklığa kavuşturmak istiyorum, Aslında bunu uygulamaya ne zaman, orada birkaç yolu bunu yapmak için. Bu örnekte Yani, biz 2 daha az 7, hey, dedi. Biz 2 Yapmanız gereken, nerede 7 yerine vardı. Ve sonra biz 7 olduğu 2 yerine vardı. Ama gerçek aşağı devam edebilirsiniz ise, Senin kadar 2 koymak için iyi bir yer bulmak ve bunu sağa şeyi değiştiriyor, ve daha sonra 2 koyarak. Bu şekilde olsa da, takip etmek biraz daha kolay. Ve de, belki de farklı yollar ele alacağız biz aslında algoritma zaman bunu yapmak için. Her neyse, bu 4 bakalım. Aynı kesin bir fikir. 4 7'den daha az, bu yüzden 7 koyalım 4 ve 7 olduğu 4 nereye koyduğunuzu. 4 3 den az mı? Hayır, bu 3'ten az, bu yüzden biz durdurmak. Yapıldı. Dördüncü öğeye ve dahil olmak üzere şimdi her şey bu listede, 0, 1, 2, 3, 4, hemen sıralanır. Ve şimdi bizim liste izin öyle gözüküyor ki-- bana bizim listede, bu gibi görünüyor şimdi biraz Kişilik Sokak aşağı doğru kaydırın. Beni aşağı yazalım. Bu 1, 2, 3, 4, 7 ve 6'dır. Ve şimdi biz listesinde bu son öğeye gidebilirsiniz. Bu şimdi karşılaştırarak konum 6'dır. Aslında, biz bunu son kez, biz umursamaz bir 4 oldu. Ama şimdi biz 6 umurumda. 6 7 daha düşük mü? Tabii, öyle. Yani 6 nereye 7 koyalım. 7 nereye bir 6 koyalım. 6 4 daha düşük mü? Hayır değil. Bu biliyoruz çünkü bu yüzden, durdurma sıralanması gidiyor. Biz daha fazla herhangi bir gitti, biz sadece konum 4 eşit veya daha az olan öğeleri almak için gidiyoruz. Bu yüzden yapılır. Biz bu listeyi sıralamış. Kriteri Listede 1, 2, 3, 4, 6, ve 7 '. Bir sonraki videoda, ben aslında gidiyorum Bu algoritma için denemek için ben sadece tanımladı. Ve basit bir Python işlevi uygulamak için gidiyorum.

Açıklama

Ekleme sıralama algoritması Görsel açıklaması

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

Khan Academy

Khan Academy

Misyonumuz, her yerde herkes için dünya standartlarında bir eğitim sağlamak. Tüm Khan Academy içerik www.khanacademy.org adresinden ücretsiz olarak sunulmaktadır.

YORUMLAR



9.5/10

  • 240
    Olumlu
  • 11
    Olumsuz
  • 24
    Yorum
  • 101112
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • engineerguy

    engineerguy

    10 Ocak 2010
  • Truc Minh

    Truc Minh

    23 Ocak 2011

ANKET



Bu sayfa işinize yaradı mı?