Çizgi Roman: Üç "harika" sıralama algoritması

Yazar | Xiao Hui

Kaynak | Programcı Xiaohui (ID: chengxuyuan xi aohui)

Algoritmalar dünyasında, hızlı sıralama, birleştirme sıralaması, kova sıralama gibi birçok verimli sıralama algoritması vardır ... Çok Programın performansını iyileştirdi.

Bununla birlikte, ne yüksek verimlilik ne de okunabilirlik elde edemeyen bazı garip sıralama algoritmaları vardır. Varoluşlarının anlamı nedir? Çünkü ilginç.

Aşağıda, üç "fısıltı" sıralama algoritmasını sunalım.

Uyku sıralama

----- sonraki gün -----

public static void sleepSort (int dizi) {

for (int num: array) {

yeni Konu(- > {

Deneyin {

Thread.sleep (num);

} catch (InterruptedException e) {

e.printStackTrace;

}

System.out.println (sayı);

}).Başlat;

}

}

public static void main (String args) {

int dizi = {10,30,50,60,100,40, 150 , 200,70};

sleepSort (dizi);

}

(Xiao Hui kodunu Rhubarb'a gösterdi)

Maymun sıralama

Belki bu daha soyuttur, bunu gösterelim:

Boncuk sıralama

Bir abaküs gören biri, ince bir çubuğa asılmış çok sayıda yuvarlak boncuk olduğunu bilir, örneğin:

Abaküsü dik yerleştirirseniz ne olur? Abaküs üzerindeki küçük boncuklar, aşağıdaki gibi yerçekimi etkisiyle abaküsün dibine kayacaktır:

Bu ne anlama geliyor? Ayrıntılandıralım:

Boncuklar düşmeden önce, her sırada kaç tane boncuk vardır? Yukarıdaki şekilde gösterildiği gibi, her sıradaki boncuk sayısı sırasıyla 3, 2, 4, 5, 1'dir ve bu sayı dizisi düzensizdir.

Boncuklar düştüğünde, her sırada kaç tane boncuk vardır? Yukarıdaki şekilde gösterildiği gibi, her sıradaki boncuk sayısı 1, 2, 3, 4, 5 olmuştur. Bu numara sırasıdır!

Öyleyse, düşen boncuk ilkesini simüle edebilir ve bir dizi pozitif tamsayıları sıralayabilir miyiz? Cevap Evet.

Bir abaküsü simüle etmek için iki boyutlu bir dizi kullanabiliriz, boncuklarla konumu 1'e ve boncuksuz konumu 0'a ayarlayabiliriz. Ardından, sırasız bir tamsayı dizisi aşağıdaki iki boyutlu diziye dönüştürülebilir:

Daha sonra, abaküs boncuklarının düşme sürecini simüle ediyoruz, böylece tüm elemanlar 1 iki boyutlu dizinin altına düşer:

Son olarak, düşmüş "abaküsü" tek boyutlu sıralı bir diziye dönüştürün:

15 yaşındaki programcının açıklaması: kariyerimi etkileyen 8 önemli beceri
önceki
Şangay, İnternetin "kayıp on yılını" geri alıyor
Sonraki
"Matematik yapamam, başka ne yapabilirim?" Röportajcı + CTO: Her şeyi yapmalıyım
Stanford'un ilk Çinli kadın dekanı "suni deri" makinelere ve engelli kişilere dokunma hissi veriyor.
Windows 10 daha güzel kokuludur, yerli kullanıcıların yarısından fazlası Windows 7'yi "korur"
bilet? Meslekler? Nesne? Python size yılın üç büyük problemini zarif bir şekilde çözmeyi öğretir
Dr.Stanford ayrıldı ve 3 alanda dünyayı değiştirdi, teknoloji delisi Musk'ın zirvesine giden yol
Çin'in kendi geliştirdiği programlama dili "Mulan", "yabancı" dış görünümü olan başka bir kırmızı çekirdekli tarayıcı mı?
Neden Go'da makine öğrenimi mimarileri yazıyoruz ama Python'da yazmıyoruz?
Sizi Spring Boot / Cloud'un arkasındaki lüks Ar-Ge ekibiyle tanıştırmanın zamanı geldi
Pandaların veri işlemede üç numarası vardır, kaç tanesini biliyorsunuz?
200.000 QQ sunucusu tamamen bulutta
Xiangyang'ı ziyaret eden Hubei: Antik kent bahar gelgitini "canlandırdı"
Spor Gözlemi Tokyo Olimpiyatları ertelendi ve Çin lejyonları mutlu ve üzgün
To Top