日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《算法导论3rd第一章》算法在计算中的作用

發布時間:2024/3/13 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《算法导论3rd第一章》算法在计算中的作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

什么是算法?為什么算法值得研究?算法的作用是什么

算法

算法就是任何良定義的計算過程,該過程取某個值或值的集合作為輸入并產生某個值或值的集合做為輸出。即就是把輸入轉換成輸出的計算步驟的一個序列。

良定義的解釋:良好的定義,讓人一看就懂得

拿排序問題舉例:

  • 輸入一個序列<a1 a2 a3 a4 a5>
  • 輸出一個遞增序列<a1' a2' a3' a4' a5'>, 滿足a1'<=a2'<=a3'<=a4'<=a5'。
  • 即其排序的過程就是我們所謂的算法, 如果對每個輸入實例都能得到期望的輸出那么稱該算法是正確的,當然,某些時候當算法的錯誤率可控時對于我們來說仍然是可用的。

    算法能夠解決哪些問題?

  • 人類的基因工程。識別人類DNA中的10萬個基因,包含30億堿基對,將這些信息儲存于數據庫并開發相應的工具進行數據分析,使得生物科學家能夠有效地利用數據進行實驗研究。
  • 網站的數據信息管理。借助算法能夠幫助尋找用于傳輸數據的性能優良的路由,如提高我們利用搜索引擎檢索信息的速度。
  • 電子商務領域的電子支付保密性。公鑰密碼和數字簽名都是以數值算法為基礎的。
  • 各領域的線性規劃問題如石油公司如何設置油井以最大化利潤、航空公司如何在滿足乘務員調度法規的基礎上最大化利潤地將乘務員分配到各班機上
  • 以上是一些概括,最終會具體到實際問題:

  • 給出一張交通圖上面標記了所有十字路口之間的距離;我們如何確定從一個十字路口到另一個十字路口間的最短距離?簡單來說求解過程如下:將交通圖建模為一個圖,接著尋找途中從一個頂點到另一個頂點的最短路徑。
  • 給定兩個有序的符號序列:X=<x1,x2,x3......xm>和Y=<y1,y2,y3.....yn>,求出X和Y的最長公共子序列。比如若兩個序列是DNF鏈中的基對,那么當它們具有長的公共子序列時我們認為它們是相似的。而選擇X和Y的所有可能的子序列會發揮大量的時間,因此要借助一種合適的算法。
  • 拓撲排序問題,給定一個依據部件庫的機械設計,其中每個部件可能包含其他部件的實例,我們需要列出這些部件使每個部件出現在使用它的部件的前面。
  • 給定平面上n個點尋找凸殼的問題。所謂凸殼就是在該平面上包含所有這些點的最小多邊形。
  • 練習題

    • 1-1給出現實生活中需要排序的一個例子或現實生活中需要計算凸殼的一個例子。 排序:輸入班級所有學生的考試成績,輸出成績排名 凸包:求省/城市邊界范圍,城市規劃等
    • 1-2除速度外,在真實環境中還可能使用哪些其他有關效率的量度 內存、通信的帶寬、精度、健壯性。
    • 1-3 選擇一種你以前已知的數據結構并討論其優勢和局限。 單向鏈表: 優勢:可以不用連續的內存空間,插入和刪除比較方便 劣勢:不能向數組一樣隨機訪問。
    • 1-4 前面給出的最短路徑與旅行商問題有哪些相似之處

      相似之處:都是尋求最短路徑 不同之處:最短路線問題:從若干條可選線路中選擇一條線路使之在兩個點之間最短旅行商問題:需要遍歷所有的點。

    作為一種技術的算法

    假設計算機是無限快的并且計算機存儲器是免費的,那么用于求解某個問題的任何正確的方法都行。?我們還有什么理由研究算法?

    當然,計算機也許是快的,但它們不是無限快。存儲器也許是廉價的,但不是免費的。所以計算時間是一種有限資源,存儲器中的空間也一樣。你應該明智地使用這些資源,在時間或空間方面有效的算法將幫助你這樣使用資源。舉一個1000w數組排序的例子:

  • 計算機A(每秒執行百億條指令),插入排序
  • 計算機B(每秒1000萬條指令),歸并排序
  • 計算機A就純計算能力來說比計算機B快1000倍,插入排序排序n個數,需要指令;歸并排序需要指令.即

    • ? ?計算機A需要,? ?1000w * 1000w / 100億??= 10000?秒
    • ? ?計算機B需要,1000w *? / 1000W? = 23秒

    計算機B比計算機A還快接近500倍!因此表明我們應該像計算機硬件一樣把算法看成是一種技術。整個系統的性能不但依賴于選擇快速的硬件而且還依賴于選擇有效的算法。

    練習題

    • 2-1給出在應用層需要算法內容的應用的一個例子,并討論涉及的算法的功能。 當我們使用高德或百度地圖,查找兩地點的路徑。 在此情況下,我們最關心的是最近路徑就是通過算法計算出來的
    • 2-2假設我們正比較插入排序與歸并排序在相同機器上的實現。對規模為n的輸入,插入排序運行步,而歸并排序運行64nlgn步。問對哪些n值,插入排序優于歸并排序? 1. 滿足8n^2 < 64n*lg(n) 2. n < 8*lg(n); 3. 可得n<= 43 ,不考慮n為1.

    思考題

    ? ? 以計算機1s一般可執行最大操作10^6次為前提,?假設求解問題的算法需要f(n)毫秒,對下面中的每個函數f(n)和時間t,確定可以在時間t內求解的問題的最大規模n

    總結

    以上是生活随笔為你收集整理的《算法导论3rd第一章》算法在计算中的作用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。