[Arşiv] Ticaretle ilgisi olmayan saf matematik, fizik, kimya vb. beyin jimnastiği bulmacaları - sayfa 584

 
GaryKa :

Sana bir sorun vereceğim.

Boyan, elbette, ancak görüşmelerde, bilginin apotheosis'i olarak, sıralama dizileri yuvarlanır))


yani sıralama sorunu

Birler, ikiler ve üçlerin rasgele sırada yerleştirildiği bir dizi N hücre vardır.

En uygun sıralama algoritmasını oluşturun.


Bir geçişte sayın, ikincisinde diziyi doldurun .
 
alsu :

Tek geçişte:

Aynı boyuttaki dizinin boş bir kopyasını oluşturuyoruz, onu ikişerli olarak başlatıyoruz.

Dizinin başından gidiyoruz. 1 ile tanıştık - bir nüshaya yazıyoruz, baştan başlayarak, 3 - sondan başlayarak bir nüshaya yazıyoruz.

Kopya olmadan (aksi takdirde bir kopyayı doldurmanın ayrı bir geçiş olduğunu söyleyeceksiniz)

n=0, m=0

Dizinin başından gidiyoruz. 1 ile tanıştık - dizinin başlangıcından itibaren n'inci elemanla değiştiriyoruz, 1'e eşit değil (yapıma göre her zaman 2 olacak), n++, eğer 3 ile tanışırsak - onu sondan mth ile değiştiririz, değil 3'e eşittir, m++ ve eğer 1'i değiştirirsek, ilk bölümde belirtilen eylemleri gerçekleştiririz.

 
alsu :

Kopya olmadan (aksi takdirde bir kopyayı doldurmanın ayrı bir geçiş olduğunu söyleyeceksiniz)

n=0, m=0

Dizinin başından gidiyoruz. 1 ile tanıştık - dizinin başlangıcından itibaren n'inci elemanla değiştiriyoruz, 1'e eşit değil (yapıma göre her zaman 2 olacak), n++, eğer 3 ile tanışırsak - onu sondan mth ile değiştiririz, değil 3'e eşittir, m++ ve eğer 1'i değiştirirsek, ilk bölümde belirtilen eylemleri gerçekleştiririz.


ortalama yarım geçiş artı değişim için aynı süre
 
alsu :

Kopya olmadan (aksi takdirde bir kopyayı doldurmanın ayrı bir geçiş olduğunu söyleyeceksiniz)

n=0, m=0

Dizinin başından gidiyoruz. 1 ile tanıştık - dizinin başlangıcından itibaren n'inci elemanla değiştiriyoruz, 1'e eşit değil (yapıma göre her zaman 2 olacak), n++, eğer 3 ile tanışırsak - onu m-inci elemanla değiştiririz sondan itibaren, 3'e eşit değil, m++ ve eğer 1'i değiştirirsek, ilk bölümde belirtilen eylemleri gerçekleştiririz.



Harika yol.
 
alsu :
Geçiş sayısını azaltmak her zaman hızda bir artış sağlamaz.
 
İki dizi öğesini değiştirmek 3 işlemdir. Muhtemelen daha hızlı olmayacak.
 
TheXpert :
Geçiş sayısını azaltmak her zaman hızda bir artış sağlamaz.
Eh, optimallik kriteri belirlenmedi ...
 
Bir soru yükselteceğim:
A+B=...
 
alsu :

Kopya olmadan (aksi takdirde bir kopyayı doldurmanın ayrı bir geçiş olduğunu söyleyeceksiniz)

n=0, m=0

Dizinin başından gidiyoruz. 1 ile tanıştık - dizinin başlangıcından itibaren n'inci elemanla değiştiriyoruz, 1'e eşit değil (yapıma göre her zaman 2 olacak), n++, eğer 3 ile tanışırsak - onu sondan mth ile değiştiririz, değil 3'e eşittir, m++ ve eğer 1'i değiştirirsek, ilk bölümde belirtilen eylemleri gerçekleştiririz.



İyi bir fikir.
 
alsu :
Eh, optimallik kriteri belirlenmedi ...
Teslim süresi. Başka?
Ayrıca geliştirme ve hata ayıklama süresi de eklerdim.
"Tek geçiş", son kritere göre açıkça kaybeder))))