算法复杂度中的O(n)、O(nlgn)、O(n^2)等是什么意思

求详细说明(用专业语言或通俗语言均可)
O()这个符号,最初来自哪里,在其他哪些方面也用到该符号?

关于算法的复杂度计算,初学者一开始便容易进入完全定量的思考之中,这是难以到达的。算法复杂度在很多时候是对算法运行的时间一个大概的定性(或者说大数)描述,因为很多时候无法精确地描述一条代码究竟执行了多少时间。而任何一个算法运行的大多时间都集中在某一主体循环之中,像for,while之类,主体循环的次数往往跟某个或多个输入参数或环境变量有关。像O(n)、O(nlgn)、O(n^2)之类描述都是围绕主体循环次数和输入参数或者环境变量的关系展开的。
下面举一个例子,从给定的整型数组中查找与某一数相等的数的位置,显然对于没有排序的数组而言,需要从数组头部开始向后遍历比较,那么这个主体遍历循环就跟数组的长度有关,即算法复杂度为O(n)。
温馨提示:答案为网友推荐,仅供参考