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 | ||||
| # | Time | Memory | Function | Location |
| 1 | 0.0004 | 444792 | {main}( ) | .../index.php:0 |
| 2 | 0.0131 | 879960 | MediaWiki->run( ) | .../index.php:46 |
| 3 | 0.0132 | 879992 | MediaWiki->main( ) | .../Wiki.php:447 |
| 4 | 0.0763 | 3018720 | OutputPage->output( ) | .../Wiki.php:598 |
| 5 | 0.0770 | 3038584 | SkinTemplate->outputPage( $out = ??? ) | .../OutputPage.php:2095 |
| 6 | 0.1074 | 3592760 | VectorTemplate->execute( ) | .../SkinTemplate.php:263 |
| 7 | 0.1094 | 3614752 | BaseTemplate->msg( $str = 'tagline' ) | .../Vector.php:173 |
| 8 | 0.1094 | 3614944 | Message->escaped( ) | .../SkinTemplate.php:1525 |
| 9 | 0.1094 | 3614944 | Message->toString( ) | .../Message.php:769 |
| 10 | 0.1095 | 3614944 | Message->transformText( $string = 'Z {{grammar:2sg|{{SITENAME}}}}' ) | .../Message.php:671 |
| 11 | 0.1095 | 3614944 | MessageCache->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 = ['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 = 'Algoritmus'; 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 |
| 12 | 0.1095 | 3614944 | Parser->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 = '20261026114550'; 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 = '20261026114550'; 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 = 'Algoritmus'; 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 |
| 13 | 0.1095 | 3614944 | Parser->preprocess( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $title = class Title { public $mTextform = 'Algoritmus'; public $mUrlform = 'Algoritmus'; public $mDbkeyform = 'Algoritmus'; public $mUserCaseDBKey = 'Algoritmus'; 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 = '20261026114550'; 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 = '20261026114550'; 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 |
| 14 | 0.1095 | 3611984 | Parser->replaceVariables( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $frame = ???, $argsOnly = ??? ) | .../Parser.php:620 |
| 15 | 0.1095 | 3612360 | Parser->preprocessToDom( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = ??? ) | .../Parser.php:3151 |
| 16 | 0.1095 | 3612360 | Preprocessor_DOM->preprocessToObj( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = 0 ) | .../Parser.php:3094 |
| 17 | 0.1095 | 3612360 | Preprocessor_DOM->preprocessToXml( $text = 'Z {{grammar:2sg|{{SITENAME}}}}', $flags = 0 ) | .../Preprocessor_DOM.php:160 |
| 18 | 0.1096 | 3613216 | PPDStack->__construct( ) | .../Preprocessor_DOM.php:249 |
Algoritmus je přesný postup, podle kterého se vykonává nějaká činnost.
Obsah
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