<strike id="ddzbl"><span id="ddzbl"><em id="ddzbl"></em></span></strike>
    <font id="ddzbl"><sub id="ddzbl"><mark id="ddzbl"></mark></sub></font>

      <address id="ddzbl"></address>
      <listing id="ddzbl"></listing>

        <track id="ddzbl"><span id="ddzbl"><progress id="ddzbl"></progress></span></track>

        首頁人工智能學科動態正文

        什么是算法?算法有哪些特性?

        更新時間:2022-05-31 來源:黑馬程序員 瀏覽量:

        人工智能培訓課程中會講到許多算法,那么究竟什么是算法?

        算法(algorithm)是解決特定問題的步驟描述,通俗地講,算法就是描述解決問題步驟的方法。例如,新學期開學,從家到學校的交通方式這個問題就有很多解決方案:有的學生乘坐火車,有的學生乘坐汽車,有的學生乘坐飛機,在本市的可能會自己開車或乘坐公共汽車,離學校近的可能會步行來學校。這里每一種方案就是一種算法,這么多解決方法就是這么多種算法。

        在計算機中,算法也是對某一個問題的求解方法,只是它的表現形式是計算機指令的有序序列,執行這些指令就能解決特定的問題。例如,在高級程序設計語言(如C語言)中,常用的排序算法如選擇排序、冒泡排序等,都是用計算機指令編寫算法,來解決排序問題。

        在程序設計中,算法有3種較為常用的表示方法:偽代碼法、N-S結構化流程圖和流程圖法,用得最多的是流程圖法,接下來就簡單地學習算法的流程圖法。流程圖是描述問題處理步驟的一種常用圖形工具,它由一些圖框和流程線組成。使用流程圖描述問題的處理步驟,形象觀,便于閱讀。畫流程圖時必須按照功能選用相應的流程圖符號,常用的流程圖符號如圖所示。

        1653994328714_流程符號.jpg

        圖1-12所示的流程圖符號中列舉了4個圖框、1個流程線和1個連接點,具體說明如下:

        ·起止框用于表示流程的開始或結束。

        ·輸入輸出框用平行四邊形表示,在平行四邊形內可以寫明輸入或輸出的內容。

        ·判斷框用菱形表示,它的作用是對條件進行判斷,根據條件是否成立來決定如何執行后續的操作。

        ·處理框用矩形表示,它代表程序中的處理功能,如算術運算和賦值等。

        ·流程線用單向箭線或直線表示,可以連接不同位置的圖框。流程線的標準流向是從左到右和從上到下,可用直線表示,非標準流向的流程線應使用箭頭指示方向。

        ·連接點用圓形表示,用于流程圖的延續。通過上面的講解,讀者對流程圖符號有了簡單的認識。下面以一個數組選擇排序算法

        的流程圖為例,學習簡單的流程圖,如圖所示。

        1653994349375_流程圖.jpg

        假設一個數組要從小到大排序,結合流程圖來分析選擇排序的過程:

        第一步,在數組中選擇出最小的元素,將它與0角標元素交換,即放在開頭第1位。

        第二步,除0角標元素外,在剩下的待排序元素中選擇出最小的元素,將它與1角標元素交換,即放在第2位。

        第三步,依次類推,直到完成最后兩個元素的排序交換,就完成了升序排列。這樣根據流程圖來編寫算法的指令代碼,就會變得清晰簡單。讀者在以后設計算法時,最好先根據設計思路出算法的流程圖,其次分析其可行性,最后再完成代碼。

        算法的特性

        一個好的算法,尤其是一個成熟的算法,應該具有以下5個特性:

        (1)確定性。算法的每一步都有確定的含義,不會出現二義性。即在相同條件下,只有一條執行路徑,相同的輸入只會產生相同的輸出結果。

        (2)可行性。算法的每一步都是可執行的,通過執行有限次操作來完成其功能。

        (3)有窮性。一個算法必須在執行有窮步驟之后結束,且每一步都可在有窮時間內完成。這里的有窮概念不是數學意義上的,而是指在實際應用當中可以接受的、合理的時間和步驟。

        (4)高效率與低存儲。算法的效率通常指的是算法的執行時間,對于同一個問題的多種算法,執行時間短的其效率就高。存儲量指的是算法在執行過程中所需的最大存儲空間,包括所用到的內存及外存。設計算法時應考慮到執行效率和存儲需求,設計出一個“性價比”較高的算法。

        要設計出一個好的算法,就要綜合考慮其正確性、可讀性、健壯性,還要考慮其執行效率和存儲量需求。

        1653994606311_算法特性.png

        分享到:
        在線咨詢 我要報名

        CHINESE熟女老女人HD

          <strike id="ddzbl"><span id="ddzbl"><em id="ddzbl"></em></span></strike>
          <font id="ddzbl"><sub id="ddzbl"><mark id="ddzbl"></mark></sub></font>

            <address id="ddzbl"></address>
            <listing id="ddzbl"></listing>

              <track id="ddzbl"><span id="ddzbl"><progress id="ddzbl"></progress></span></track>