Różnica między pseudo kodem a algorytmem?

17

Technicznie, czy istnieje różnica między tymi dwoma słowami, czy możemy używać ich zamiennie? Oba z nich mniej więcej opisują logiczną sekwencję kroków, które należy wykonać w celu rozwiązania problemu. prawda? Więc dlaczego właściwie używamy dwóch takich słów, jeśli mają one na myśli to samo?

Lub W przypadku, gdy nie są synonimami, co je wyróżnia? W jakich kontekstach powinniśmy używać słowa pseudo-kod zamiast algorytmu?

Vamsi Emani
źródło
4
Algorytm jest szybki. Pseudokod brzmi: „Zrób mi kanapkę, a potem, gdy jest gotowa, przynieś mi ją”.
Neil,
Zobacz tę odpowiedź na inne pytanie. Tam opisałem związek między algorytmem a pseudokodem.
Goran Jovic
3
Krótka wersja: „Pseudo-kod jest jednym ze sposobów reprezentacji algorytmu”
Goran Jovic
3
@Neil, a nawet SUDO zrobić mi kanapkę xkcd.com/149
StuperUser

Odpowiedzi:

37

Definicja algorytmu w Wikipedii:

W matematyce i informatyce algorytm jest skuteczną metodą wyrażoną jako skończona lista dobrze zdefiniowanych instrukcji do obliczania funkcji. Algorytmy są wykorzystywane do obliczeń, przetwarzania danych i automatycznego wnioskowania.

Algorytmy można opisać na różne sposoby, od czystych wzorów matematycznych po złożone wykresy, częściej niż bez, bez pseudokodu.

Pseudokod opisuje, jak zaimplementować algorytm bez wchodzenia w szczegóły składniowe.

Więc nie, nie są tak naprawdę synonimami.

Demian Brecht
źródło
8

Algorytm jest pomysł o tym, jak pisać kod. Pseudo kod to tekst pisany, którego potrzebujesz, aby przekazać ten pomysł.

DanC
źródło
Ładny! Krótkie i proste. Ale powiedziałbym „tekst pisany” niż „tekst pisany”. Co myślisz?
Luciano
6

„Pseudokod” oznacza „algorytm”, podobnie jak „angielski” oznacza „dowcip puk-puk”.

Algorytm jest formalną strukturą dla czegoś, co może być wyrażone w pseudokodzie lub w rzeczywistym kodzie.

Dowcip puk-puk to formalna struktura czegoś, co można wyrazić po angielsku lub w innym języku. (Czy inne kultury żartują z pukania? Nawet nie wiem.)

Dan Ray
źródło
Nie wydaje mi się Przynajmniej w tym portugalskim nie ma nic podobnego w tej grze puk-puk. Powiedziałbym więc, że nie ma też innych języków romańskich, takich jak hiszpański i włoski. Nie uwzględnię francuskiego, ponieważ przed wiekami miał długi romans z angielskim na wyspach brytyjskich i nie znam innych języków romańskich, takich jak rumuński i inne.
Luciano
3

Istnieje tylko jeden algorytm szybkiego sortowania, który istniałby w świecie czystych pomysłów Platona. Może istnieć dowolna liczba różnych opisów tego pseudokodu. Myślę, że zdefiniowałbym pseudo-kod jako tekst, który z grubsza przypomina kod komputerowy i może zostać przetłumaczony przez doświadczonego programistę na rzeczywisty kod komputerowy bez konieczności dokonywania jakichkolwiek kreatywnych skoków.

Więc nie, nie użyłbym tych terminów zamiennie.

PeterAllenWebb
źródło
2

Algorytm jest systematycznym logicznym podejściem stosowanym do rozwiązywania problemów w komputerze, podczas gdy Pseudokod to instrukcja w prostym języku angielskim, która może być później przetłumaczona na język programowania (program).

Aloyce Boniface
źródło
2

Algorytm jest semantyczny, podczas gdy pseudo-kod jest tylko składnią komunikatu o rozwiązaniu problemu. Oznacza to, że algorytm jest rzeczywistym sposobem rozwiązania problemu, podczas gdy pseudo-kod jest tylko sposobem wyrażenia tego w ten sposób.

Algorytm ma to samo znaczenie (semantyczne), jeśli wyrazisz go w jakikolwiek sposób (składnię), czy to język programowania C, pseudokod lub język angielski.

m3th0dman
źródło
1

Pseudo kod, jak rozumiem, jest pośrednikiem między algorytmem a zaimplementowanym programem. Możesz opierać swój pseudo kod na algorytmie. Zawiera to możliwe do wdrożenia kroki.

Z drugiej strony algorytm implikuje ogólną logikę. w sekwencyjnych krokach w celu rozwiązania problemu. jeśli jest reprezentowany schematycznie, nazywa się to schematem blokowym.

Niektórzy mogą nazywać to pseudo kodem, który jest powszechnym terminem w tworzeniu oprogramowania biznesowego, w którym deweloperzy obiektów biznesowych po stronie klienta piszą pseudo kod na podstawie wymagań. Jest to przekazywane programistom / programistom do wdrożenia.

Algorytm, który można znaleźć częściej w programowaniu terminologii, np. Programowanie systemów, wyszukiwanie, sortowanie, w zasadzie wszędzie tam, gdzie istnieje zaimplementowana złożona logika.

Aditya P.
źródło
1

Chociaż pseudo-kod wydaje się bliższy kodowi niż algorytmowi, w praktyce pseudo-kod jest mniej formalny i jest opisem na wyższym poziomie. Na przykład możesz opisać komputer do gry w szachy jako pseudo kod taki jak ten:

  • umieść początkowe elementy na swoich miejscach
  • tablica pokazowa
  • dopóki gra się nie skończyła
    • wykonać ruch i wyświetlić planszę
    • monituj użytkownika o przeniesienie
    • spraw, aby użytkownicy się poruszali

Tak, jest to pseudokod, jest pomocny jako dobry punkt wyjścia, ale przeskakuje przez wiele szczegółów. Nie uwzględnia trudności i wariantów implementacji, ale największą zaletą jest to, że pozwala na konceptualizację całej sytuacji bez konieczności rozwiązywania wszystkich szczegółów.

Możesz to zmienić, dodając jeszcze jeden poziom:

  • umieść początkowe elementy na swoich miejscach
  • tablica pokazowa
  • podczas gdy na planszy nie ma szachu ani losowania
    • sporządzić listę legalnych ruchów białych
    • wybierz najlepszy według niektórych kryteriów
    • wykonaj ten ruch i oblicz wynikową tablicę
    • sprawdź, czy nastąpił mat i remis
    • wyświetlacz
    • sporządzić listę legalnych ruchów czarnych
    • monituj użytkownika o legalny ruch w celu wprowadzenia danych
    • wykonaj ten ruch i oblicz wynikową tablicę
    • sprawdź, czy nastąpił mat i remis
    • wyświetlacz

Teraz możesz napisać pseudokod dla każdego z głównych kroków, na przykład „wykonaj listę legalnych ruchów czarnych”, na przykład:

  • za każdy czarny kawałek
    • dla typu sztuki w danej lokalizacji
      • sporządzić listę następnych możliwych lokalizacji

Teraz widzisz, że moc pseudokodu polega na tym, że potrafi on pokazać całą sytuację za jednym razem, a następnie pozwala ci odnosić się do szczegółów kawałek po kawałku. Słabość polega na tym, że każdy krok nie jest zdecydowanie prostym krokiem.

Algorytm zazwyczaj wybiera jeden z tych kroków i wyszczególnia różne struktury danych w języku symbolicznym, abyś mógł skutecznie osiągnąć cel tego kroku.

Na przykład get_legal_moves(board, color)jest wart projektowania algorytmu:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

Widać, że algorytm musi być bardzo precyzyjny, aby był użyteczny.

Zapewnia kilka rzeczy: przede wszystkim osiągnięcie celów bez błędów. Kroki są bardzo szczegółowe i można je wykonać w sposób zmechanizowany, a kroki są na tyle małe, że można je zmienić ich kolejność, aby zwiększyć wydajność (szybkość), z jaką kończy się zadanie.

Ravi Annaswamy
źródło
To wydaje się być odgórnym rozkładem algorytmu wyrażonym w pseudokodzie na każdym kroku.
Nathan Tuggy
0

Z mojego doświadczenia wynika, że ​​pseudo-kod zawsze był pisany przez funkcjonalny personel (osoby, które są właścicielami procesu) jako sposób wyrażenia reguł biznesowych, które mają zastosowanie do procesu, modułu lub podsystemu.

Algorytm to różniczkowy zestaw instrukcji logicznych służący do rozwiązania tak konkretnego zadania, jak to możliwe.

Michael Riley - AKA Gunny
źródło
0

Algorytm jest czymś, co jest reprezentowane w kategoriach matematycznych. Obejmuje analizę, podstawową implementację (nawet wyrażoną w pseudokodzie), kwestie dotyczące złożoności (analiza najlepsza, średnia i najgorsza itd.).

Pseudo kod to czytelna dla człowieka reprezentacja programu. Nawet tego można użyć do opisania algorytmu.

sarat
źródło
-2

Pseudo oznacza pojedynczy i kod może być instrukcją ... pseudo-kod oznacza instrukcję, która służy do łatwego zrozumienia języka programowania komputerowego ... pomaga w analizie kodu programowego .... . gdzie jako algorytm jest skończonym logicznym krokiem instrukcji rozwiązywania problemu.

gopiraj anupa
źródło
1
wydaje się, że nie oferuje to nic istotnego w porównaniu z punktami przedstawionymi i wyjaśnionymi w poprzednich 10 odpowiedziach
gnat