![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Witam. Jako że mam pewien problem, z którym wyjątkowo nie potrafię sobie poradzić od kilku dni, postanowiłem zapytać o niego ekspertów. Jest to mój pierwszy post, zawsze radziłem sobie sam i wiem do czego służy wyszukiwarka. Mianowicie wygląda to tak:
Mam tablicę obiektów, w której to obiekty są posortowane wg ich pola $obiekt->id. Chciałbym wykonać pętlę, która by sortowała moją tablicę tak, aby po każdym obiekcie o danym $obiekt->id znalazły się obiekty, które wartość $obiekt->id2 mają taką samą jak $obiekt->id poprzedzającego je obiekt. Oczywiście namieszałem, ale w skrócie to chodzi mi o funkcję, która wpisywałaby mi nową wartość do tablicy w jakimś tam miejscu wewnątrz, a nie jako ostatni element, jednocześnie przesuwając indeksy kolejnych kluczy, od miejsca wstawienia nowego elementu o 1 dalej. Nie mam pojęcia jak to rozwiązać. Pozdrawiam wszystkich i z góry dziękuję za konstruktywne odpowiedzi (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Algorytm prostego sortowania przez wstawianie się kłania. Przebieg pętli składa się z trzech faz:
1. Szukasz miejsca do wstawienia 2. Wstawiasz element 3. Przesuwasz wszystkie obiekty o jedną pozycję do przodu. Przesuwanie robi się bardzo prosto. Jesteś na pozycji X w tablicy. Zapamiętujesz jej obiekt w zmiennej tymczasowej A, a na pozycję wstawiasz obiekt ze zmiennej tymczasowej B. Następnie przepisujesz obiekt ze zmiennej A do B. Tyle. Pierwszą wartość zmiennej B bierzesz z pozycji tablicy, pod którą wstawiasz nowy element. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:57 |