阿摩線上測驗 登入

申論題資訊

試卷:107年 - 107 一般警察特種考試_二等_刑事警察人員犯罪分析組:計算機概論(包括計算機結構、資料結構、程式設計)#69515
科目:計算機概論、大意(資訊科學概論,電腦常識,電子計算機概論)
年份:107年
排序:0

題組內容

四、我們有各式各樣的問題想使用電腦來解決。而問題依計算的複雜度可分類為 polynomial-time solvable、NP-complete、unsolvable 等類別。

申論題內容

⑸為了表達計算的複雜度,我們常使用 big-O notation 來表示一個演算法或程式的效 能。何謂 big-O notation?(4 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

Big-O notation(大O符號)是一種數學符號表示法,用於描述算法的時間複雜度或空間複雜度隨著輸入規模的增長而增長的上界。它提供了一種抽象的方式來表示算法效率,忽略了常數因子和低階項,專注於算法執行時間或所需空間與輸入大小之間的關係。

Big-O 符號的一般形式是 O(f(n)),其中 n 是表示輸入規模的變量,f(n) 是一個函數,表達了算法性能隨輸入規模增長的趨勢。例如:

  • O(1) 表示常數時間複雜度,算法的執行時間不隨輸入規模的增加而增加。
  • O(n) 表示線性時間複雜度,算法的執行時間與輸入規模成正比。
  • O(n2) 表示二次時間複雜度,算法的執行時間與輸入規模的平方成正比。
  • O(logn) 表示對數時間複雜度,算法的執行時間與輸入規模的對數成正比,常見於二分查找等算法。
  • O(nlogn) 常見於某些高效的排序算法中,如快速排序、归并排序等。

Big-O 符號幫助我們理解算法在最壞情況下的效能,是計算機科學中分析和比較算法性能的一個重要工具。通过使用 Big-O 符號,我們可以抽象地估計算法對於大量數據的處理能力,而不用深入到算法的具體實現細節中。