久久天天躁狠狠躁夜夜躁,国产精品入口福利,97久久精品人人爽人人爽蜜臀 ,中文字幕国产精品一区二区

當前位置首頁 > 教育資訊

算法效率衡量要有細化標準,你知道嗎?

更新時間:2024-03-04 文章作者:佚名 信息來源:網絡整理 閱讀次數:

算法執行時間。jgi物理好資源網(原物理ok網)

算法效率是通過在計算機上運行基于該算法的程序所花費的時間來衡量的。jgi物理好資源網(原物理ok網)

算法效率是一個組合概念,算法+效率。 算法是解決問題的一系列明確的指令,對于一定的標準化輸入,能夠在有限的時間內獲得所需的輸出。jgi物理好資源網(原物理ok網)

算法是一個重要的概念。 我們今天使用的任何軟件背后都有一系列算法。 智能時代,算法是我們需要了解的基本概念,后面會詳細闡述。jgi物理好資源網(原物理ok網)

就今天的入門來說,重點不是介紹算法,而是給出算法中排序算法的一個例子,讓讀者對算法有一個感性的認識。 同時,更重要的是在工作效率的基礎上豐富對效率的認識。jgi物理好資源網(原物理ok網)

2、衡量算法效率應該有詳細的標準。jgi物理好資源網(原物理ok網)

效率比較的前提是確定公平的比較標準和測試方法。jgi物理好資源網(原物理ok網)

如上所述,算法執行時間是用來衡量算法效率的。 這是正確的方向,但是用多少數據來測試算法速度是一個問題。jgi物理好資源網(原物理ok網)

原因是,當使用不同數據量進行測試時,兩種算法的相對性能可能完全不同。jgi物理好資源網(原物理ok網)

例如,使用10000條數據進行測試,算法A的運行時間為2毫秒,算法B需要運行10毫秒。 使用100萬條數據測試,算法A運行8000毫秒,算法B運行4000毫秒。jgi物理好資源網(原物理ok網)

當數據量較小時,算法A耗時較少,效果較好; 當數據量較大時,算法B耗時較少,效果較好。jgi物理好資源網(原物理ok網)

為此,計算機科學家、算法分析之父高德納(Knuth)開發了一種普遍認可的算法效率評估方法。 高德納的思想主要包括3個部分:jgi物理好資源網(原物理ok網)

首先,在比較算法的速度時,需要考慮數據量特別大,幾乎無窮大的情況。 原因是計算機的發明主要是為了處理大量數據。jgi物理好資源網(原物理ok網)

其次是比較算法的速度。 只要評估隨數量變化的因素,jgi物理好資源網(原物理ok網)

白色的。jgi物理好資源網(原物理ok網)

決定算法速度的因素有很多,但可以分為兩類:第一類是不隨數據量變化的因素,第二類是隨數據量變化的因素。 當數據量趨于無窮大時,第一類因素的影響很小,可以忽略不計; 因此,只需評估第二類因素。jgi物理好資源網(原物理ok網)

第三,如果兩種算法的執行時間處于同一數量級,則認為算法效率同樣好。 換句話說,計算機科學家關注的是至少10倍的差異,而不關心幾倍的差異。jgi物理好資源網(原物理ok網)

以上體現了科學研究的方法,就像做思想實驗一樣,忽略和避免次要因素的干擾,聚焦主要因素,從而實現理論突破。 在實際工程層面,通常考慮次要因素,甚至1%的效率差異也可能需要重點關注。jgi物理好資源網(原物理ok網)

Q2:如何理解算法效率? A:1.了解傳統排序算法的效率。jgi物理好資源網(原物理ok網)

排序是我們在工作和生活中經常遇到的事情。 例如,在學校,學生按成績排序; 例如,在一家公司中,產品按銷量排序。jgi物理好資源網(原物理ok網)

排序之后,就可以進行一些有針對性的處理。 例如,針對不同年級的學生安排不同的輔導策略; 針對不同的銷售產品采取不同的促銷策略。jgi物理好資源網(原物理ok網)

在這個過程中,排序是前提工作,否則后續的安排就無從下手。jgi物理好資源網(原物理ok網)

要手動對分數進行排序,我們很容易想到兩種方法:jgi物理好資源網(原物理ok網)

方法一:從成績單中篩選,第一次挑選分數最高的學生,第二次挑選分數第二高的學生,直至篩選完畢,對學生進行排序。jgi物理好資源網(原物理ok網)

方法二:首先將成績單上第一個學生的姓名和年級寫在他旁邊一張白紙的中央。 如果第二個同學的成績比他高,就寫在第一個同學的上面。 如果比他低,就寫在第一個學生的上方。 寫在下面。jgi物理好資源網(原物理ok網)

看到第三個學生的成績后,根據他的成績與前兩個學生的成績的比較,將其插入到相應的位置。例如,如果他的成績在兩個同學之間正好,則在他旁邊的排序試卷上,在前兩個人之間插入他的名字。jgi物理好資源網(原物理ok網)

之間。jgi物理好資源網(原物理ok網)

通過將這兩種手動方法遷移到計算機上,您可以編寫算法并讓計算機自動執行它們。jgi物理好資源網(原物理ok網)

第一種方法在計算機算法中稱為冒泡排序。jgi物理好資源網(原物理ok網)

原因是每次都會選擇剩下的最高的,就像水里冒出的氣泡一樣。jgi物理好資源網(原物理ok網)

第二種方法稱為插入排序。 原因是你每次都必須找到正確的位置插入它。jgi物理好資源網(原物理ok網)

2.了解快速排序算法的效率。jgi物理好資源網(原物理ok網)

通過分析冒泡排序和插入排序過程,我們可以知道它們為什么慢。jgi物理好資源網(原物理ok網)

例如,冒泡排序很慢,因為每次選擇最大的數字時,都必須將其與所有其他數字進行比較。 如果能做減法,減少相互比較的次數,就能提高排序速度。jgi物理好資源網(原物理ok網)

基于這個思想,就產生了歸并排序算法,其過程大致如下:jgi物理好資源網(原物理ok網)

以年級排名為例,如果將所有學生分成兩組,然后分別進行冒泡排序,那么通過在每組中挑選最大的一組,可以節省一半的相互比較的時間。jgi物理好資源網(原物理ok網)

將兩組分別排序后,然后將它們合并在一起形成有序序列。 這就是合并排序算法名稱的由來。jgi物理好資源網(原物理ok網)

由于合并不需要太多時間,這樣可以節省大約1/2的時間。 但如上所述,在科學理論層面效率可以說快嗎,僅僅節省一半的時間是不夠的。jgi物理好資源網(原物理ok網)

為了進一步提高算法的效率,可以將兩個獨立的組分成兩組,總共4組。 重復以上過程,這樣可以節省3/4的時間。jgi物理好資源網(原物理ok網)

如此下去,可以將4組分成8組,可以節省7/8的時間; 8組可分為16組,可以節省越來越多的時間。 分組結束時,每組只剩下兩人時,無需排序,只需比較一次大小即可。jgi物理好資源網(原物理ok網)

以排序為例。 如果一個程序員只知道傳統的冒泡和插入排序算法,而不掌握合并排序算法,那么最終寫出的程序的運行時間可能會相差一百萬倍。jgi物理好資源網(原物理ok網)

這是一個非常顯著的差異。 讀者不難理解,一流程序員和普通程序員的成就相比,可能存在天壤之別。 那么,如果一流程序員的工資是普通程序員的100倍,就不難理解了。jgi物理好資源網(原物理ok網)

從另一個角度來看,當今世界各行各業都在經歷互聯網+,這意味著越來越多的工作環節正在軟件化。 一個懂得如何提高軟件執行質量和算法效率的人會比不懂的人有價值得多。 這也是該行業工資高的原因之一。jgi物理好資源網(原物理ok網)

算法的效率與一個人的數學能力有很大關系。 這也是數學好的人如何賺更多錢的例子。jgi物理好資源網(原物理ok網)

當然,并不是每個人都需要掌握編程,但是擁有一定水平的數學思維是必要的,并且可以在很多領域發揮作用。jgi物理好資源網(原物理ok網)

回到今天入門的主題效率可以說快嗎,像合并排序算法這樣的快速排序算法并不只有一種。 例如,現在常用的排序算法是由英國計算機科學家托尼開發的。 Hall提出的快速排序算法。 其原理是:jgi物理好資源網(原物理ok網)

首先,對于大量無序數,從其中隨機選擇一個,比如50。這個隨機選擇的數稱為主元值。jgi物理好資源網(原物理ok網)

接下來,將所有待排序的數字分為兩部分,第一部分大于或等于主元值50,第二部分小于主元值50。jgi物理好資源網(原物理ok網)

第二步是找到上述兩組數字的樞軸值。 例如大于50的組可以選擇70; 小于50的組可以選擇30。接下來,可以根據新的主元值將每組數字分為兩組,總共4組。jgi物理好資源網(原物理ok網)

第三步,參照上面的方法,4組變成8組,8組變成16組,直到最后排列完畢。jgi物理好資源網(原物理ok網)

一般情況下,快速排序算法的時間復雜度也是o(N*log(N)),但比前面提到的歸并排序算法要快。jgi物理好資源網(原物理ok網)

2次,因此實際中更常用。jgi物理好資源網(原物理ok網)

發表評論

統計代碼放這里
主站蜘蛛池模板: 青铜峡市| 手机| 新郑市| 铁岭县| 清涧县| 临城县| 老河口市| 长白| 横峰县| 涟水县| 衡山县| 延津县| 东光县| 辽宁省| 航空| 三河市| 舞阳县| 铁岭县| 荆州市| 乐业县| 田阳县| 嘉禾县| 白城市| 丰顺县| 平顶山市| 新乡县| 祁门县| 吕梁市| 海安县| 临安市| 寿阳县| 芜湖市| 女性| 天柱县| 泗水县| 永昌县| 罗田县| 宁河县| 渑池县| 孟州市| 津市市|