Bu bir kod golf sorusu.
Giriş
Hangi formatta olursa olsun negatif olmayan tamsayıların listesi en uygun olanıdır.
Çıktı
Aynı liste, hangi formatta olursa olsun, sıralı sırayla en uygun olanıdır.
kısıtlama
- Kodunuz O çalıştırmak (n log) zaman gerekir kötü durumda
n
girişteki tamsayılar sayısıdır. Bu, örneğin rasgele dağılmış çabuk sıranın dışarıda olduğu anlamına gelir. Ancak, aralarından seçim yapabileceğiniz birçok başka seçenek var. - Hiçbir sıralama kitaplığı / işlevi / benzeri kullanmayın. Ayrıca sıralamanın çoğunu sizin için bir yığın kitaplığı gibi yapan hiçbir şey kullanmayın. Temel olarak, ne uygularsanız uygulayın, sıfırdan uygulayın.
İsterseniz bir işlev tanımlayabilirsiniz, ancak daha sonra gerçekten çalışan tam bir programda bunun bir örneğini gösterin. Aşağıdaki tüm test senaryolarında başarılı ve hızlı bir şekilde çalışmalıdır.
Test senaryoları
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
Cevapların
Lütfen uyguladığınız sıralama algoritmasını ve çözümünüzün uzunluğunu cevabınızın başlığında belirtin.
O (n log n) zaman sıralama algoritmaları
Var olan birçok O (n log n) zaman algoritması vardır. Bu tabloda bazılarının bir listesi vardır .
intersect
otomatik olarak dizi sıralar eğer "benzer" altında geliyor düşünüyorum . Kopyaları kaldırırsanız, yanlış çıktı verirsiniz.
intersect
Diziyi otomatik olarak sıralamak gibi bazı ayar işlevleri . Sanırım bunları da dışlamak istiyorsun. Nasıl olurunique
(kopyaları kaldır, sonucu sıralar)?