
#python
Czy jakiś miły programista pythona mógłby mi powiedzieć jak wygenerować w pythonie tablicę liczb prawie posortowanych?
Potrzebne mi to jest do przetestowania mojego algorytmu sortujacego, a testuje go dla roznych tablic. Mam gaussa, mam totalny random itp tylko tych prawie posortowanych mi brakuje to testu :<
Czy jakiś miły programista pythona mógłby mi powiedzieć jak wygenerować w pythonie tablicę liczb prawie posortowanych?
Potrzebne mi to jest do przetestowania mojego algorytmu sortujacego, a testuje go dla roznych tablic. Mam gaussa, mam totalny random itp tylko tych prawie posortowanych mi brakuje to testu :<
- Najlepsze
- Wszystkie komentarze







1. Posortuj tablicę.
2. Ostatni element przenieś na początek.
3. Masz tablicę prawie posortowaną.
I mój sposób nie spełnia tego? Spełnia przecież.
Właśnie o taką magię pythona mi chodziło :D
Dzięki Panowie, co prawda pytanie już nieaktualne, ale dobrze się dowiedzieć czegoś nowego :)
numbers = [i
fori inxrange(1000)]almost_sorted =
list(chain(*zip(numbers[1::2], numbers[::2])))
nie wystarczy?
Utwórz pusta tablice B
Napisz metodę, która wylosuje Ci element spośród trzech pierwszych elementów tablicy A, doda go do tablicy B i skasuje z A.
Wykonaj ja w pętli odpowiednią ilość razy.
Żeby modyfikować ułożeniem tablicy B możesz:
- losować z 2 albo 4 czy
Potem mieszasz całkiem losowo m elementów z początku tablicy, modyfikując ją. W następnym kroku mieszasz elementy od (floor(m/2)) do (floor(m/2))+m.
Wykonuje się to w czasie O(n^(3/2)) bodajże.
@Ginden: Dzięki jeszcze raz raz pomysły.
Przeziębiłem się kurka wodna i w głowie papka zamiast mózgu.
@Ginden: Dzięki. Spróbuję.
A[-1:] + A[:-1]