Algoritmus


( ! ) Deprecated: Creation of dynamic property PPDStack::$accum is deprecated in /home/pmt/public_html/ssinfis/includes/parser/Preprocessor_DOM.php on line 754
Call Stack
#TimeMemoryFunctionLocation
10.0000445664{main}( ).../index.php:0
20.0050879960MediaWiki->run( ).../index.php:46
30.0050879992MediaWiki->main( ).../Wiki.php:447
40.06163430976OutputPage->output( ).../Wiki.php:598
50.06203450840SkinTemplate->outputPage( $out = ??? ).../OutputPage.php:2095
60.08633912272VectorTemplate->execute( ).../SkinTemplate.php:263
70.08773934184BaseTemplate->msg( $str = 'tagline' ).../Vector.php:173
80.08773934376Message->escaped( ).../SkinTemplate.php:1525
90.08773934376Message->toString( ).../Message.php:769
100.08773934376Message->transformText( $string = 'Z {{grammar:2sg|{{SITENAME}}}}' ).../Message.php:671
110.08773934376MessageCache->transform( $message = 'Z {{grammar:2sg|{{SITENAME}}}}', $interface = TRUE, $language = class Language { public $mConverter = class FakeConverter { public $mLang = ... }; public $mVariants = NULL; public $mCode = 'cs'; public $mLoaded = FALSE; public $mMagicExtensions = []; public $mMagicHookDone = TRUE; private $mHtmlCode = 'cs'; private $mParentLanguage = FALSE; public $dateFormatStrings = ['both' => [...], 'date' => [...], 'time' => [...]]; public $mExtendedSpecialPageAliases = ['Gadgets' => [...], 'Renameuser' => [...], 'Activeusers' => [...], 'Allmessages' => [...], 'Allpages' => [...], 'Ancientpages' => [...], 'Blankpage' => [...], 'Block' => [...], 'Booksources' => [...], 'BrokenRedirects' => [...], 'Categories' => [...], 'ChangeEmail' => [...], 'ChangePassword' => [...], 'ComparePages' => [...], 'Confirmemail' => [...], 'Contributions' => [...], 'CreateAccount' => [...], 'Deadendpages' => [...], 'DeletedContributions' => [...], 'DoubleRedirects' => [...], 'Emailuser' => [...], 'ExpandTemplates' => [...], 'Export' => [...], 'Fewestrevisions' => [...], 'FileDuplicateSearch' => [...], 'Filepath' => [...], 'Import' => [...], 'Invalidateemail' => [...], 'BlockList' => [...], 'LinkSearch' => [...], 'Listadmins' => [...], 'Listbots' => [...], 'Listfiles' => [...], 'Listgrouprights' => [...], 'Listredirects' => [...], 'Listusers' => [...], 'Lockdb' => [...], 'Log' => [...], 'Lonelypages' => [...], 'Longpages' => [...], 'MergeHistory' => [...], 'MIMEsearch' => [...], 'Mostcategories' => [...], 'Mostimages' => [...], 'Mostlinked' => [...], 'Mostlinkedcategories' => [...], 'Mostlinkedtemplates' => [...], 'Mostrevisions' => [...], 'Movepage' => [...], 'Mycontributions' => [...], 'Mypage' => [...], 'Mytalk' => [...], 'Newimages' => [...], 'Newpages' => [...], 'Popularpages' => [...], 'Preferences' => [...], 'Protectedpages' => [...], 'Protectedtitles' => [...], 'Randompage' => [...], 'Randomredirect' => [...], 'Recentchanges' => [...], 'Recentchangeslinked' => [...], 'Revisiondelete' => [...], 'Search' => [...], 'Shortpages' => [...], 'Specialpages' => [...], 'Statistics' => [...], 'Tags' => [...], 'Unblock' => [...], 'Uncategorizedcategories' => [...], 'Uncategorizedimages' => [...], 'Uncategorizedpages' => [...], 'Uncategorizedtemplates' => [...], 'Undelete' => [...], 'Unlockdb' => [...], 'Unusedcategories' => [...], 'Unusedimages' => [...], 'Unusedtemplates' => [...], 'Unwatchedpages' => [...], 'Upload' => [...], 'Userlogin' => [...], 'Userlogout' => [...], 'Userrights' => [...], 'Version' => [...], 'Wantedcategories' => [...], 'Wantedfiles' => [...], 'Wantedpages' => [...], 'Wantedtemplates' => [...], 'Watchlist' => [...], 'Whatlinkshere' => [...], 'Withoutinterwiki' => [...], 'AllMyUploads' => [...], 'Badtitle' => [...], 'Diff' => [...], 'EditWatchlist' => [...], 'JavaScriptTest' => [...], 'ListDuplicatedFiles' => [...], 'Mostinterwikis' => [...], 'Myuploads' => [...], 'PagesWithProp' => [...], 'PasswordReset' => [...], 'PermanentLink' => [...], 'Prefixindex' => [...], 'RandomInCategory' => [...], 'Redirect' => [...], 'ResetTokens' => [...], 'RunJobs' => [...], 'TrackingCategories' => [...], 'UploadStash' => [...]]; protected $namespaceNames = [-2 => 'Média', -1 => 'Speciální', 0 => '', 1 => 'Diskuse', 2 => 'Uživatel', 3 => 'Diskuse_s_uživatelem', 4 => 'Projekt', 5 => 'Diskuse_k_Projekt', 6 => 'Soubor', 7 => 'Diskuse_k_souboru', 8 => 'MediaWiki', 9 => 'Diskuse_k_MediaWiki', 10 => 'Šablona', 11 => 'Diskuse_k_šabloně', 12 => 'Nápověda', 13 => 'Diskuse_k_nápovědě', 14 => 'Kategorie', 15 => 'Diskuse_ke_kategorii']; protected $mNamespaceIds = ['média' => -2, 'speciální' => -1, '' => 0, 'diskuse' => 1, 'uživatel' => 2, 'diskuse_s_uživatelem' => 3, 'projekt' => 4, 'diskuse_k_projekt' => 5, 'soubor' => 6, 'diskuse_k_souboru' => 7, 'mediawiki' => 8, 'diskuse_k_mediawiki' => 9, 'šablona' => 10, 'diskuse_k_šabloně' => 11, 'nápověda' => 12, 'diskuse_k_nápovědě' => 13, 'kategorie' => 14, 'diskuse_ke_kategorii' => 15, 'uživatel_diskuse' => 3, 'uživatelka_diskuse' => 3, 'soubor_diskuse' => 7, 'mediawiki_diskuse' => 9, 'šablona_diskuse' => 11, 'nápověda_diskuse' => 13, 'kategorie_diskuse' => 15, 'projekt_diskuse' => 5, 'uživatelka' => 2, 'diskuse_s_uživatelkou' => 3, 'image' => 6, 'image_talk' => 7]; protected $namespaceAliases = ['Uživatel_diskuse' => 3, 'Uživatelka_diskuse' => 3, 'Soubor_diskuse' => 7, 'MediaWiki_diskuse' => 9, 'Šablona_diskuse' => 11, 'Nápověda_diskuse' => 13, 'Kategorie_diskuse' => 15, 'Projekt_diskuse' => 5, 'Uživatel' => 2, 'Uživatelka' => 2, 'Diskuse_s_uživatelem' => 3, 'Diskuse_s_uživatelkou' => 3]; public $transformData = [] }, $title = class Title { public $mTextform = 'Algoritmus'; public $mUrlform = 'Algoritmus'; public $mDbkeyform = 'Algoritmus'; public $mUserCaseDBKey = NULL; public $mNamespace = 0; public $mInterwiki = ''; public $mFragment = ''; public $mArticleID = 3; public $mLatestID = 9; public $mContentModel = 'wikitext'; private $mEstimateRevisions = NULL; public $mRestrictions = ['edit' => [...], 'move' => [...]]; public $mOldRestrictions = FALSE; public $mCascadeRestriction = FALSE; public $mCascadingRestrictions = NULL; public $mRestrictionsExpiry = ['edit' => 'infinity', 'move' => 'infinity']; public $mHasCascadingRestrictions = NULL; public $mCascadeSources = NULL; public $mRestrictionsLoaded = TRUE; public $mPrefixedText = 'Algoritmus'; public $mTitleProtection = NULL; public $mDefaultNamespace = 0; public $mWatched = NULL; public $mLength = 2791; public $mRedirect = FALSE; public $mNotificationTimestamp = []; public $mHasSubpage = NULL; private $mPageLanguage = [0 => 'cs', 1 => 'cs']; private $mTitleValue = NULL } ).../Message.php:977
120.08773934376Parser->transformMsg( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $options = class ParserOptions { public $mInterwikiMagic = TRUE; public $mAllowExternalImages = FALSE; public $mAllowExternalImagesFrom = ''; public $mEnableImageWhitelist = TRUE; public $mDateFormat = NULL; public $mEditSection = FALSE; public $mAllowSpecialInclusion = TRUE; public $mTidy = FALSE; public $mInterfaceMessage = TRUE; public $mTargetLanguage = class Language { public $mConverter = class FakeConverter { ... }; public $mVariants = NULL; public $mCode = 'cs'; public $mLoaded = FALSE; public $mMagicExtensions = [...]; public $mMagicHookDone = TRUE; private $mHtmlCode = 'cs'; private $mParentLanguage = FALSE; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = [...]; protected $namespaceAliases = [...]; public $transformData = [...] }; public $mMaxIncludeSize = 2097152; public $mMaxPPNodeCount = 1000000; public $mMaxGeneratedPPNodeCount = 1000000; public $mMaxPPExpandDepth = 40; public $mMaxTemplateDepth = 40; public $mExpensiveParserFunctionLimit = 100; public $mRemoveComments = TRUE; public $mTemplateCallback = [0 => 'Parser', 1 => 'statelessFetchTemplate']; public $mEnableLimitReport = FALSE; public $mTimestamp = '20261026124650'; public $mExternalLinkTarget = FALSE; public $mCleanSignatures = TRUE; public $mPreSaveTransform = TRUE; public $mDisableContentConversion = FALSE; public $mDisableTitleConversion = FALSE; public $mNumberHeadings = 0; public $mThumbSize = 2; private $mStubThreshold = 0; public $mUserLang = class Language { public $mConverter = class FakeConverter { ... }; public $mVariants = NULL; public $mCode = 'cs'; public $mLoaded = FALSE; public $mMagicExtensions = [...]; public $mMagicHookDone = TRUE; private $mHtmlCode = 'cs'; private $mParentLanguage = FALSE; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = [...]; protected $namespaceAliases = [...]; public $transformData = [...] }; public $mUser = class User { public $mId = 0; public $mName = '216.73.217.55'; public $mRealName = ''; public $mPassword = ''; public $mNewpassword = ''; public $mNewpassTime = NULL; public $mEmail = ''; public $mTouched = '1'; public $mToken = NULL; public $mEmailAuthenticated = NULL; public $mEmailToken = ''; public $mEmailTokenExpires = NULL; public $mRegistration = '20261026124650'; public $mEditCount = NULL; public $mGroups = [...]; public $mOptionOverrides = NULL; protected $mPasswordExpires = NULL; public $mOptionsLoaded = TRUE; private $mLoadedItems = TRUE; public $mFrom = 'session'; public $mNewtalk = FALSE; public $mDatePreference = 'default'; public $mBlockedby = -1; public $mHash = FALSE; public $mRights = [...]; public $mBlockreason = NULL; public $mEffectiveGroups = [...]; public $mImplicitGroups = [...]; public $mFormerGroups = NULL; public $mBlockedGlobally = NULL; public $mLocked = NULL; public $mHideName = NULL; public $mOptions = [...]; private $mRequest = class WebRequest { ... }; public $mBlock = NULL; public $mAllowUsertalk = NULL; private $mBlockedFromCreateAccount = FALSE; private $mWatchedItems = [...] }; public $mIsPreview = FALSE; public $mIsSectionPreview = FALSE; public $mIsPrintable = FALSE; public $mExtraKey = ''; protected $onAccessCallback = [0 => class ParserOutput { ... }, 1 => 'recordOption'] }, $title = class Title { public $mTextform = 'Algoritmus'; public $mUrlform = 'Algoritmus'; public $mDbkeyform = 'Algoritmus'; public $mUserCaseDBKey = NULL; public $mNamespace = 0; public $mInterwiki = ''; public $mFragment = ''; public $mArticleID = 3; public $mLatestID = 9; public $mContentModel = 'wikitext'; private $mEstimateRevisions = NULL; public $mRestrictions = ['edit' => [...], 'move' => [...]]; public $mOldRestrictions = FALSE; public $mCascadeRestriction = FALSE; public $mCascadingRestrictions = NULL; public $mRestrictionsExpiry = ['edit' => 'infinity', 'move' => 'infinity']; public $mHasCascadingRestrictions = NULL; public $mCascadeSources = NULL; public $mRestrictionsLoaded = TRUE; public $mPrefixedText = 'Algoritmus'; public $mTitleProtection = NULL; public $mDefaultNamespace = 0; public $mWatched = NULL; public $mLength = 2791; public $mRedirect = FALSE; public $mNotificationTimestamp = []; public $mHasSubpage = NULL; private $mPageLanguage = [0 => 'cs', 1 => 'cs']; private $mTitleValue = NULL } ).../MessageCache.php:1008
130.08773934376Parser->preprocess( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $title = class Title { public $mTextform = 'Algoritmus'; public $mUrlform = 'Algoritmus'; public $mDbkeyform = 'Algoritmus'; public $mUserCaseDBKey = NULL; public $mNamespace = 0; public $mInterwiki = ''; public $mFragment = ''; public $mArticleID = 3; public $mLatestID = 9; public $mContentModel = 'wikitext'; private $mEstimateRevisions = NULL; public $mRestrictions = ['edit' => [...], 'move' => [...]]; public $mOldRestrictions = FALSE; public $mCascadeRestriction = FALSE; public $mCascadingRestrictions = NULL; public $mRestrictionsExpiry = ['edit' => 'infinity', 'move' => 'infinity']; public $mHasCascadingRestrictions = NULL; public $mCascadeSources = NULL; public $mRestrictionsLoaded = TRUE; public $mPrefixedText = 'Algoritmus'; public $mTitleProtection = NULL; public $mDefaultNamespace = 0; public $mWatched = NULL; public $mLength = 2791; public $mRedirect = FALSE; public $mNotificationTimestamp = []; public $mHasSubpage = NULL; private $mPageLanguage = [0 => 'cs', 1 => 'cs']; private $mTitleValue = NULL }, $options = class ParserOptions { public $mInterwikiMagic = TRUE; public $mAllowExternalImages = FALSE; public $mAllowExternalImagesFrom = ''; public $mEnableImageWhitelist = TRUE; public $mDateFormat = NULL; public $mEditSection = FALSE; public $mAllowSpecialInclusion = TRUE; public $mTidy = FALSE; public $mInterfaceMessage = TRUE; public $mTargetLanguage = class Language { public $mConverter = class FakeConverter { ... }; public $mVariants = NULL; public $mCode = 'cs'; public $mLoaded = FALSE; public $mMagicExtensions = [...]; public $mMagicHookDone = TRUE; private $mHtmlCode = 'cs'; private $mParentLanguage = FALSE; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = [...]; protected $namespaceAliases = [...]; public $transformData = [...] }; public $mMaxIncludeSize = 2097152; public $mMaxPPNodeCount = 1000000; public $mMaxGeneratedPPNodeCount = 1000000; public $mMaxPPExpandDepth = 40; public $mMaxTemplateDepth = 40; public $mExpensiveParserFunctionLimit = 100; public $mRemoveComments = TRUE; public $mTemplateCallback = [0 => 'Parser', 1 => 'statelessFetchTemplate']; public $mEnableLimitReport = FALSE; public $mTimestamp = '20261026124650'; public $mExternalLinkTarget = FALSE; public $mCleanSignatures = TRUE; public $mPreSaveTransform = TRUE; public $mDisableContentConversion = FALSE; public $mDisableTitleConversion = FALSE; public $mNumberHeadings = 0; public $mThumbSize = 2; private $mStubThreshold = 0; public $mUserLang = class Language { public $mConverter = class FakeConverter { ... }; public $mVariants = NULL; public $mCode = 'cs'; public $mLoaded = FALSE; public $mMagicExtensions = [...]; public $mMagicHookDone = TRUE; private $mHtmlCode = 'cs'; private $mParentLanguage = FALSE; public $dateFormatStrings = [...]; public $mExtendedSpecialPageAliases = [...]; protected $namespaceNames = [...]; protected $mNamespaceIds = [...]; protected $namespaceAliases = [...]; public $transformData = [...] }; public $mUser = class User { public $mId = 0; public $mName = '216.73.217.55'; public $mRealName = ''; public $mPassword = ''; public $mNewpassword = ''; public $mNewpassTime = NULL; public $mEmail = ''; public $mTouched = '1'; public $mToken = NULL; public $mEmailAuthenticated = NULL; public $mEmailToken = ''; public $mEmailTokenExpires = NULL; public $mRegistration = '20261026124650'; public $mEditCount = NULL; public $mGroups = [...]; public $mOptionOverrides = NULL; protected $mPasswordExpires = NULL; public $mOptionsLoaded = TRUE; private $mLoadedItems = TRUE; public $mFrom = 'session'; public $mNewtalk = FALSE; public $mDatePreference = 'default'; public $mBlockedby = -1; public $mHash = FALSE; public $mRights = [...]; public $mBlockreason = NULL; public $mEffectiveGroups = [...]; public $mImplicitGroups = [...]; public $mFormerGroups = NULL; public $mBlockedGlobally = NULL; public $mLocked = NULL; public $mHideName = NULL; public $mOptions = [...]; private $mRequest = class WebRequest { ... }; public $mBlock = NULL; public $mAllowUsertalk = NULL; private $mBlockedFromCreateAccount = FALSE; private $mWatchedItems = [...] }; public $mIsPreview = FALSE; public $mIsSectionPreview = FALSE; public $mIsPrintable = FALSE; public $mExtraKey = ''; protected $onAccessCallback = [0 => class ParserOutput { ... }, 1 => 'recordOption'] }, $revid = ??? ).../Parser.php:4852
140.08783931416Parser->replaceVariables( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $frame = ???, $argsOnly = ??? ).../Parser.php:620
150.08783931792Parser->preprocessToDom( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = ??? ).../Parser.php:3151
160.08783931792Preprocessor_DOM->preprocessToObj( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = 0 ).../Parser.php:3094
170.08783931792Preprocessor_DOM->preprocessToXml( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = 0 ).../Preprocessor_DOM.php:160
180.08783932648PPDStack->__construct( ).../Preprocessor_DOM.php:249
Z Wiki SŠINFIS
Verze z 5. 9. 2014, 16:25; Matas (diskuse | příspěvky)

(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání
Algoritmus je přesný postup, podle kterého se vykonává nějaká činnost.

Způsoby zápisu algoritmu

Tentýž algoritmus lze zapsat různými způsoby. Ukažme si je na příkladu algoritmu pro nalezení největšího čísla posloupnosti:

Přirozený jazyk

Vstupem je posloupnost čísel P, výstupem je největší číslo v dané posloupnosti. Do proměnné NEJ uložíme první číslo posloupnosti P. Postupně procházíme jednotlivá čísla posloupnosti P a jestliže je právě zkoumané číslo posloupnosti větší než aktuální hodnota v proměnné NEJ, pak hodnotu proměnné NEJ nahradíme právě zkoumaným číslem posloupnosti. Nakonec hodnota v proměnné NEJ je výstupem algoritmu.

Přirozený jazyk strukturovaný

Vstup: Posloupnost čísel P
Výstup: Největší číslo v posloupnosti
1. Do proměnné NEJ uložíme první číslo posloupnosti P
2. Postupně procházíme jednotlivá čísla posloupnosti P
2.1 Jestliže je právě zkoumané číslo posloupnosti větší než aktuální hodnota v proměnné NEJ, pak hodnotu v proměnné NEJ nahradíme právě zkoumaným číslem posloupnosti
3. Hodnota v proměnné NEJ je výstupem algoritmu

Pseudokód

Vstup: Posloupnost čísel P
Výstup: Největší číslo posloupnosti
NEJ ← P[0]
Pro každé číslo C z posloupnosti P dělej
Jestliže C > NEJ, pak NEJ ← C
Vrať NEJ

Konkrétní programovací jazyk

/**
 * Algoritmus pro nalezení největšího čísla v posloupnosti zapsaný jazyce Java
 * @param P  Posloupnost čísel
 * @return   Největší číslo v posloupnosti P
 */
int nejvetsi(int[] P) {
    int NEJ = P[0];
    for (int C : P) {
        if (C > NEJ) NEJ = C;
    }
    return NEJ;
}

Vývojový diagram

Struktogram

Vlastnosti algoritmu

  • Hromadný – měl by sloužit pro více případů
    • Vytvářet algoritmus pro výpočet odmocniny ze čtyř nemá smysl
    • Vytvářet algoritmus pro výpočet odmocniny z libovolného čísla má smysl
  • Jednoznačný – v každém kroku musí být jasné, co se má provést a který krok bude následovat
  • Opakovatelný – při stejných vstupních datech musí být výsledek vždy stejný
  • Konečný – po určitém počtu kroků musí poskytnout výsledek a skončit

Možnosti návrhu algoritmu

  • Shora dolů – Řešení rozkládáme na jednodušší operace až k dílčím krokům
  • Zdola nahoru – Z dílčích kroků vytváříme prostředky pro zvládnutí celkového problému
  • Kombinace předchozích