多項式時間を説明する前に、大きなO表記を簡単に説明します。簡潔にするために、それは単純化された説明であることに注意してください。
すべてのアルゴリズムは、結果を計算するためにいくつかの手順を実行します。
また、「入力サイズ」の概念もあります。多くの場合、 *n *として示されます。
アルゴリズムは、アルゴリズムがせいぜい*c \*f（n）*ステップを撮ることを示すことができる場合、関数fの*o（f（n））*であると言います
入力サイズ *n *で結果を計算します。ここで、 * c *はある程度定数です。

具体的な例を挙げます。N整数のリストがあると想像してください。整数のペアが最大の合計を与えるかを見つけたいと思います。
私たちのアルゴリズムは、可能なすべてのペアをチェックし、より良いものを見つけるとすぐに見つけた最高のペアを更新することであるとしましょう。
このアルゴリズムの「ビッグO」は*o（n^2）*になります。これは、*n \*（n-1）/2*ペアを確認し、有限数のステップを実行する必要があるため
それぞれのペアが考慮します。たとえば、手順の数は7です。次に、アルゴリズムが入力に対して行うステップ数を
サイズnは *3.5n^2-3.5n *です、私たちは本当に支配的な用語を見るだけです： *3.5n^2 *、 *c *の値は3.5、f（n）はn^2です。アルゴリズムはO（n^2）です。

さて、それは邪魔にならない。「大きなO」関数が多項式である場合、アルゴリズムは多項式時間であると言います。
Before explaining polynomial time, I'll briefly explain Big O notation. Just note that for brevity it is a simplified explanation.
Any algorithm takes some number of steps to compute a result.
We also have a notion of "input size", often denoted as *n*.
We say that an algorithm is *O(f(n))* for a function f, if it can be shown that the algorithm takes at most *c\*f(n)* steps
to compute a result with input size *n*. Where *c* is some constant.

To give a concrete example. Imagine we have a list of n integers, and we want to find which pair of integers gives the largest sum.
Let's suppose our algorithm is to check every possible pair, and update the best pair we found as soon as we find a better one.
The "Big O" of this algorithm would be *O(n^2)*, because we would have to check *n\*(n-1)/2* pairs, and do a finite number of steps
for each pair to consider. Say the number of steps is for instance 7. Then the number of steps the algorithm does for an input of
size n is *3.5n^2 - 3.5n*, we only really look at the dominant term: *3.5n^2*, the value of *c* here is 3.5, f(n) is n^2, thus this algorithm is O(n^2).

Okay, with that out of the way. We say that an algorithm is polynomial time, if it's "Big O" function is a polynomial.