1 Temmuz 2011, Cuma

Ekleme Sıralama İşlevi Adım

Ne bu video yapmak istiyorum adım insertion_sort fonksiyonu sayesinde Biz son video yazdı. Bunu Ama önce, ben aslında istiyorum Ben kullanıldığı fark çünkü sadece bunun bir parçası odaklanmak muhtemelen tanımadığınız bir şey, Daha önce kullanmış değil çünkü. Birazdan buraya anahtar kelime kullanılır. Ben mola kullandı. Ve sen, araçları kırmak ne olduğunu tahmin olabilir ama şimdi açıkça izah edeceğiz. Ne mola anlamına küçük döngünün patlak olduğunu yaptığın bulundu. Yani bizim madde alarak ve biz vardı Bunun solundaki şey karşılaştırarak tuttu. Ya da biz şeyleri değerini alarak ve karşılaştırarak Bun

un solunda. Ve bulduğumuz en kısa sürede değer bir şey daha az olmamak Bunun solunda, biz hey, biz bitirdiniz, dedi. Biz sola devam etmek zorunda değilsiniz. Ve bu durumda, ben döngü kırmak istiyorum. Yani biz

bu while döngüsü kırıyorsun. Ve o zaman biz sadece döngü bu bizim bir sonraki tekrarında devam buraya. Böylece mola yaptım. Şimdi yolumdan bununla aslında atalım Basit bir örnek bu program sayesinde adı

“Ne "kırmak" netleştirilmesi yapar ve yerleştirme sıralama uygulanması yoluyla atlama...”
Khan Academy

m. Yani şimdi sadece, en iyi birisi calls-- diyelim Bir beni oldukça basit list-- düşünelim aşağıdaki amaçlara eşit olmak tanımlamak 2, 1, 2, 1, ben, sanırım, 1, 2, 3-- 2, 1, 3, 2 bilmiyorum Orada iyi bir listedir. Ve en biz üzerinde insertion_sort çağırıyor olduğunu varsayalım. En ne olacak neler düşünelim. Peki, ilk şey, tabii ki atalım list-- Burada tüm değişkenler takip. Yani liste sağ olsun gitmek olduğunu, 2, 1, 3, 2 başvurmak için gidiyorum. Do

Ekleme Sıralama İşlevi Adım Resim 1 Ekleme Sıralama İşlevi Adım Resim 2 Ekleme Sıralama İşlevi Adım Resim 3 Ekleme Sıralama İşlevi Adım Resim 4

ğru olsun-go listesi. Ve sonra aralık ayında endekste için, fonksiyon girmek. Ve sağ buraya bu bölümü ayrıştırmak edelim. Peki listenin ne len? Yani 2, 1, 3, 2 len aynı şey bizim listesinin olduğu len. Ve bu sadece gerçekten elemanların sayısıdır. Len o kadar kısa length-- için kısa. Ama bu len sadece 1, 2, 3, 4 olacak. Bu dört element eşit olacak. Yani buraya bu hakkın 4 olacak. Ve ardından arama, 1 arasında değişir ve listenin len 4'tür. Bu, 1 de liste başlangıç ​​dönecektir kadar değil, 4, 1, 2, 3, de dahil olm

ak üzere. Ve bu yüzden bu bizim kullanmak istediğiniz endeksleri vardır İlk endeks çünkü buraya bu doğru. İkinci endeks buraya bu doğru. Ve üçüncü endeks buraya olmasıdır. Bu 0-th indeks olduğunu unutmayın. Yani endeks, bu ikisi arasında artan tutmak için gidiyor. Daha sonra ilk 1, daha sonra 3, 2 olacak. Bu yüzden bana sadece bizim değişken dizin oluşturabilirsiniz izin kimin kapsamı döngü için içindedir. Bu yüzden biz endeksi var diyelim. Ana olmanın başlamak için gidiyor Burada bu listedeki ilk öğe, aralık tarafından oluşturulan liste, 1 virgül listesinin len. Yani endeks 1 olmak başlamak için gidiyor. Ve sonra buraya, biz değer olduğunu söylüyorlar Listede dizin elemanına eşit. Yani bana bizim değişkenin değerini tanımlayalım. Yani 1 listesi nedir? Yani listedeki ilk öğe nedir? 0-inci elemanı var. Bu birinci elemandır. Yani biz buraya bu hakkın bakıyoruz. Bu yeterince adil, böylece ilk unsurdur. Ve sonra biz i indeksi eksi 1 olmak tanımlar. Yani beni burada i üzerine koyalım. Yeni bir renk yapın. Yani şimdi en i yapalım. Bu endeks eksi 1'dir. Dizin 1, yani dizin eksi 1 0 olduğunu. Bu yüzden değerin soluna öğenin dizini var. Yani 0 olacak. Bu endeks 1 bu 0'dır. Ben daha büyük ya da 0'a eşit ise ve o zaman, söylüyorsun Burada bu işin her şeyi. Ve ilk şey buraya yapmak Biz nesneye değerini karşılaştırmak olduğunu Listedeki i-inci elemanı yer almaktadır. Bu yüzden bana buraya olduğunu yazalım. Yani i de sıralar. Yani bu listede 0-inci elemanı olacak, böylece 2 'dir. Bu yüzden değeri karşılaştırarak ediyoruz. Biz 1 karşılaştırarak ediyoruz. 1 listesinde i-inci elemanı küçükse Biz söylüyorsun 1 2 den daha az ise, o zaman bunu. O 1 kesinlikle daha az 2'dir. Biz esasen alarak 1 ve karşılaştırarak konum hey diyerek sola ve şey için, Bundan daha az. Yani daha az var. Yani sağa bu 2 vardiya izin ve en sola kaydırmak 1 verelim. Ve böylece biz burada gidip biz liste i artı 1 söylüyorlar. Yani ben artı 1 nedir? i artı 1 1'dir. Yani bu 1 liste, bu nedenle bu yuva sağ buraya. Yani bu, ben sadece altını çizdi sarı, Doğru burada bu yuva bulunuyor. i 0'dır. i artı 1 1'dir. Yani ilk öğe, ya da ilk yuvası, Sağ burada bu yuvasıdır. Listesine de ne olursa olsun ile değiştirin edelim ve i-inci elemanı ne olursa olsun, ya da 0 yuvada ne olursa olsun, ben onu aramak gerekir sanırım. Yani bu 2 ile değiştirin sürdü. Sağ? Bana açıkça yapalım. Ve bu sefer, bu 2, ve 1 oldu slot oyunudur. Yani biz konum paha koymak için gidiyoruz 2 ile o yerine gidiyor. Ve daha sonra 2 olan yerde, Biz değerle değiştirin gidiyoruz. Ve unutmayın, değeri 1 olarak ayarlandı. Yani değeri 1 olarak ayarlanır. Ve böylece bizim liste şimdi 1, 2, 3, 2 gibi görünüyor. Ve umarım, bu, tanıdık geliyor biz ilk açıklandığı zaman hatırlarsanız insertion_sort algoritması. Yani biz oraya gitmek. Ve şimdi biz i azaltma istiyoruz. Biz i var 1-- biz 1 çıkarma Ben-- ne demek. Yani şimdi durum 0. Yani i için yeni değeri 0'dır. Aslında, hayır, hayır. Özür dilerim. Ne olursa olsun ben oldu. i 0 oldu. Bunu ben şimdi 1 çıkarma ve 1 negatif olacak. Ve sonra while döngüsünde gidin. Ben daha büyük ya da 0'a eşit iken diyor. Eh, ben şimdi negatif 1, yani while döngüsü artık geçerlidir. Bu yanlış dönecektir. i, 0 için daha büyük ya da eşittir bu yüzden artık bunların hiçbirini gerçekleştirmez. Ve böylece biz şimdi döngü sonraki yineleme gidersiniz. Ve esasen, bu ne anlamına o elemanı ile yapıldı olmasıdır. Biz, bunun solunda her şeyi tüm yol karşılaştırıldığında ve yerini buldu, ya da sadece Genel olarak kendine yer buldu. Şimdi döngü için sonraki yineleme gidelim. Şimdi endeks sonraki eleman olacak. Şimdi endeksi, yerine 1 olmak olduğunu oluşturulan listedeki bir sonraki unsur olacak Burada bu ifade ile. Yani endeks şimdi 2 olacak. Ve şimdi liste değeri ikinci endeksine hiç ne olduğunu. Yani doğru buraya bu öğenin. Uyarı, biz sol ikinci vardı. Şimdi Şeyin konum ya da sola ilk vardı, ya da solunda tek bir doğru. Şimdi sağa doğru bir boşluk daha sensin. Yani değeri şimdi 3 olacak. Ben indeksi eksi 1 olacak. Index 2 'dir. 2 eksi 1 1'dir. Yani bu şimdi 1'dir. Ben daha büyük ya da 0'a eşit ise ve biz söylüyorlar. Eh, şimdi 0 açıkça eşit veya daha büyük bu. Değer listesinde azsa, i-inci elemanı So Listede, bu yüzden değeri 3'tür. Ve liste i de ne iyi edemememden daha az olduğu artık 2-- ne yani birinci elemanın var? Aslında, hala bir 2 'dir. Biz ilk element-- listeye bakarsanız Yani Listedeki i-inci elemanı, i 1, 0, 1,. Aslında dışarı geçmeye yoktu, bu yüzden hala 2 'dir. Hala sağ orada 2 olacak. Ve böylece 3 ise 2 den az, bunu. Peki, 3 2'den az, bu nedenle sen Başka maddesini yapacak. Ve sadece bu süre döngü kırmaya gidiyoruz. Söylediğin çünkü o yaptı anlamda, bak Biz bir şey hemen sağındaki 3 karşılaştırıldığında daha önce, bunun solunda. Ve biz hey, 3 doğru yerde olduğunu söyledi. 3 2'den daha fazladır. O 2'den az, bu yüzden gitmiyorum Bütün vites iş yapmak. Ben sola sağa 2 ve 3 vardiya zorunda değilsiniz ve sonra bir sonraki öğeye bak. Ben 3 solundaki her şey zaten sıralanmış olduğunu biliyoruz. 3 2'den az olması durumunda Yani, kesinlikle değil Bunun solundaki şeyden daha az olacak. Ve böylece biz bitirdik. Biz onu öyle bir şekilde bırakın. Ve böylece o zaman patlak. Sonra döngü için sonraki yineleme gidin. Yani şimdi endeks burada sonraki öğeyi olacak. Şimdi, 3'e eşit olacak Bu ifadenin tarafından oluşturulan bu listedeki bir sonraki öğe. Yani şimdi 3 olacak. Dizin şimdi 3 olacak. Değeri şimdi 0, 1, 2, 3 olacak. Değeri şu anda buraya bu öğeyi olacak. Bu bizim endeks geç 3, çünkü değer olacak. Yani bizim değeri şimdi 2 'dir. Bana bu adamlar dışarı çapraz edelim. Bana biraz yerden tasarruf edelim. Değeri şu anda 2 'dir. Ve şimdi ben 2 olduğunu. i endeks eksi 1, yani 3 eksi 1'dir. Yani 2'dir. Yani ben şimdi 2 olacak. Ve listenin, 0, ikinci elemanı olan nesne, 1, 2 şimdi 3 olacak. Ve böylece ilk şey i ise do veya daha yüksek, iyi 0-- eşittir i, 0 açıkça daha büyük ya da eşittir. Şu an 2 var. 2 ise value-- olandan daha az ise Listenin i'nci yuvaya, yani 2, en az 3 olan bu yüzden biz buraya bu hakkı gerçekleştirmek yapmak. Ve böylece biz ne i artı 1 listesine ne olursa olsun, olduğunu. Ben 2 artı 1 3'tür. Yani ne olursa olsun, bu yuvaya en olan Üçüncü yuvası 2 nerede, ile değiştirin ne olursa olsun Bunun solunda olduğunu. Yani 3 ile değiştirin. Yani biz 3 ile bu değiştirmek için gidiyoruz. Ve ertesi elemanın almak ne olursa olsun i sol o yuva oldu ve onun yerine değeri. Öyleyse biz değeri ile değiştirilir. Yani bu şey şimdi yeniden bir 2 olacak. Ve şimdi tekrar i azaltma. Yani şimdi ben 1'e eşittir. Ve biz yine while döngüsünde geçmesi. I, 0 açıkça daha büyük ya da eşittir. Bu 1'dir. Değeri hala 2 'dir. 2 Unutmayın, biz karşılaştırarak konum budur Bu süre döngü içinde giderken, ama biz sol öğelerin her birine karşılaştırarak ediyoruz. 2 azsa listesinde i-inci yuvası olan neyse. Yani listedeki ilk yuvası 2 'dir. Eh, 2 eşit, ancak daha az değil, bu yüzden daha çok şey yapmak zorunda değilsiniz. Şey sıralanır. 2 doğru yerde olduğunu. O solundaki şey eşit ise, biz bir şey değiştirmek zorunda değilsiniz. Ve bu en azından eşit ya da daha büyük olduğu anlamına gelir Bu solundaki her şeyden, Her şey bu yana zaten sıralanır. Öyleyse işimiz bitti. 2 2 daha az olduğu için, patlak. Ve biz döngü için patlak. Tamam, varsa bakayım diyor şey için dizini uygulamak için bu listede bıraktı. Yok. Biz bu listede her şeyi kullandım. Ve böylece biz döngüsü için patlak. Ve biz bitirdik. Ve liste tasnif edilmelidir. Ve biz burada görmek liste sıralanır. Bizim nihai sıralanmış liste 1, 2, 2, ve 3 olduğunu.

Açıklama

Ne "kırmak" netleştirilmesi yapar ve yerleştirme sıralama uygulanması yoluyla atlama

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.8/10

  • 66
    Olumlu
  • 1
    Olumsuz
  • 19
    Yorum
  • 24857
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • Skrillex

    Skrillex

    6 NİSAN 2010
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007

ANKET



Bu sayfa işinize yaradı mı?