{"id":409,"date":"2020-09-21T21:51:36","date_gmt":"2020-09-21T19:51:36","guid":{"rendered":"http:\/\/maths-code.fr\/cours\/?page_id=409"},"modified":"2024-11-11T14:29:40","modified_gmt":"2024-11-11T13:29:40","slug":"complexite","status":"publish","type":"page","link":"https:\/\/maths-code.fr\/cours\/complexite\/","title":{"rendered":"Complexit\u00e9 temporelle d&rsquo;un algorithme"},"content":{"rendered":"<p>En informatique, le traitement de certains algorithmes complexes peut n\u00e9cessiter du temps et de la ressource machine : c&rsquo;est ce qu&rsquo;on appelle le <strong>co\u00fbt de l&rsquo;algorithme.<\/strong> L&rsquo;utilisation des ressources est fondamentale et la question du co\u00fbt est donc centrale en informatique.<br \/>\nCe co\u00fbt est calculable et refl\u00e8te son efficacit\u00e9 : plus l&rsquo;algorithme est co\u00fbteux, moins il est efficace, et pour une m\u00eame t\u00e2che certains algorithmes se r\u00e9v\u00e8lent plus co\u00fbteux que d&rsquo;autres.<\/p>\n<blockquote class=\"wp-block-quote\"><p>L&rsquo;id\u00e9e centrale est de donner un calcul du co\u00fbt de l&rsquo;algorithme en comptant les op\u00e9rations fondamentales. Ce calcul n&rsquo;est pas exact : c&rsquo;est un ordre de grandeur \u00e9crit avec une fonction math\u00e9matique.<\/p><\/blockquote>\n<p><strong>La mesure du temps d&rsquo;ex\u00e9cution se fait rarement de fa\u00e7on exacte<\/strong>, si on arrive \u00e0 comparer deux progammes en estimant leur co\u00fbt, on dira que l&rsquo;un a une meilleure complexit\u00e9 temporelle. Notre objectif est donc de <em>cataloguer<\/em> les algorithmes en les rangeant dans des familles suivants leur complexit\u00e9. <strong>Cette complexit\u00e9 est donn\u00e9e par une fonction math\u00e9mathique<\/strong> qui est un ordre de grandeur not\u00e9 <em>O (qui est une fonction de n )<\/em>, voici les principales:<\/p>\n<p>1. <strong>O(1) <\/strong>:\u00a0complexit\u00e9\u00a0constante .<br \/>\n2. <strong>O( log(n) ) <\/strong>:\u00a0complexit\u00e9\u00a0<strong>logarithmique<\/strong> (recherche dichotomique).<br \/>\n3. <strong>O(n)\u00a0 <\/strong>:\u00a0complexit\u00e9\u00a0<strong>lin\u00e9aire<\/strong> (recherche s\u00e9quentielle d&rsquo;une occurence).<br \/>\n4.<strong> O(n.log(n))\u00a0 <\/strong>:\u00a0complexit\u00e9\u00a0quasi\u00adlin\u00e9aire.<br \/>\n5. <strong>O(n^2)\u00a0 <\/strong>:\u00a0complexit\u00e9\u00a0<strong>quadratique<\/strong> (tri par insertion).<br \/>\n6.<strong> O(2^{ polyn\u00f4me(n)}) <\/strong>: complexit\u00e9 <strong>exponentielle<\/strong>.<\/p>\n<hr \/>\n<h4>Ressources<\/h4>\n<ul>\n<li><a title=\"Th\u00e9orie de la complexit\u00e9\" href=\"https:\/\/interstices.info\/la-theorie-de-la-complexite-algorithmique\/\">Th\u00e9orie de la complexit\u00e9<\/a> (<em>interstices.info<\/em>)<\/li>\n<li><a title=\"Cours NSI: complexit\u00e9.\" href=\"http:\/\/maths-code.fr\/NSI\/1ere\/complexite\/Cours_Complexite.pdf\">Cours NSI: complexit\u00e9. <\/a>Le document du cours vu en classe.<\/li>\n<li><a title=\"Mesure pratique de la complexit\u00e9\" href=\"http:\/\/maths-code.fr\/NSI\/1ere\/complexite\/mesure_temps\/mesure_temps.pdf\">TP : Mesure pratique de la complexit\u00e9<\/a>: module <em>timeit<\/em>.<\/li>\n<\/ul>\n<hr \/>\n","protected":false},"excerpt":{"rendered":"<p>En informatique, le traitement de certains algorithmes complexes peut n\u00e9cessiter du temps et de la ressource machine : c&rsquo;est ce qu&rsquo;on appelle le co\u00fbt de l&rsquo;algorithme. L&rsquo;utilisation des ressources est fondamentale et la question du co\u00fbt est donc centrale en informatique. Ce co\u00fbt est calculable et refl\u00e8te son efficacit\u00e9 : plus l&rsquo;algorithme est co\u00fbteux, moins il est efficace, et pour une m\u00eame t\u00e2che certains algorithmes se r\u00e9v\u00e8lent plus co\u00fbteux que d&rsquo;autres. L&rsquo;id\u00e9e centrale est de donner un calcul du co\u00fbt de l&rsquo;algorithme en comptant les op\u00e9rations fondamentales. Ce calcul n&rsquo;est pas exact : c&rsquo;est un ordre de grandeur \u00e9crit avec une fonction math\u00e9matique. La mesure du temps d&rsquo;ex\u00e9cution se fait rarement de fa\u00e7on exacte, si on arrive \u00e0 comparer deux progammes en estimant leur co\u00fbt, on dira que l&rsquo;un a une meilleure complexit\u00e9 temporelle. Notre objectif est donc de cataloguer les algorithmes en les rangeant dans des familles suivants leur complexit\u00e9. Cette complexit\u00e9 est donn\u00e9e par une fonction math\u00e9mathique qui est un ordre de grandeur not\u00e9 O (qui est une fonction de n ), voici les principales: 1. O(1) :\u00a0complexit\u00e9\u00a0constante . 2. O( log(n) ) :\u00a0complexit\u00e9\u00a0logarithmique (recherche dichotomique). 3. O(n)\u00a0 :\u00a0complexit\u00e9\u00a0lin\u00e9aire (recherche s\u00e9quentielle d&rsquo;une occurence). 4. O(n.log(n))\u00a0 :\u00a0complexit\u00e9\u00a0quasi\u00adlin\u00e9aire. 5. O(n^2)\u00a0 :\u00a0complexit\u00e9\u00a0quadratique (tri par insertion). 6. O(2^{ polyn\u00f4me(n)}) : complexit\u00e9 exponentielle. Ressources Th\u00e9orie de la complexit\u00e9 (interstices.info) Cours NSI: complexit\u00e9. Le document du cours vu en classe. TP : Mesure pratique de la complexit\u00e9: module timeit.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"class_list":["post-409","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/pages\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":23,"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/pages\/409\/revisions"}],"predecessor-version":[{"id":6254,"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/pages\/409\/revisions\/6254"}],"wp:attachment":[{"href":"https:\/\/maths-code.fr\/cours\/wp-json\/wp\/v2\/media?parent=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}