- Python算法設計與分析從入門到精通
- 明日科技編著
- 685字
- 2022-07-28 18:54:24
1.1 什么是算法
大數據、人工智能(AI),都是當今時代的流行詞匯。而在我們身邊,也隨處可見各種應用場景。例如,醫生借助AI輔助診斷患者是否感染病毒,公共部門利用機器人噴灑消毒液,交警使用無人機巡邏疏導車輛,手機每天推送根據衛星云圖數據得出的天氣預報,車牌快速識別,以及刷臉支付、打卡、識別身份等。
大數據和人工智能是計算機應用領域的兩個分支,它們都需要使用程序語言來進行開發。計算機程序語言的應用領域非常廣泛,包括Web開發、游戲開發、人工智能開發、大數據開發、科學計算、數據分析等,如圖1.1所示。可以說,程序語言幾乎可以解決我們遇到的任何問題。
程序語言究竟為何能如此強大呢?核心就在于程序中看不見、摸不著但卻無處不在的種種算法。通過這些算法,簡單的代碼組合起來,即可發揮出強大的問題解決能力。

圖1.1 計算機編程語言應用領域
我們已經習慣了用計算機處理各類事情,似乎計算機什么都能干。但稍稍了解計算機內部結構的人都會知道,其實計算機并不知道自己“在做什么”,它只是在參照指令執行一些并不復雜的動作。換句話說,計算機只是比較“聽話”,讓做什么動作就做什么動作,因此只要人們告訴計算機要做什么(即執行什么動作)以及怎么做(即以什么樣的順序去執行這些動作),它就能夠高效地完成各項工作要求。
做什么和怎么做,就是我們通常所說的算法,而讓計算機變得無所不能的正是各種各樣的算法。可以說,正是人類用智慧設計的各類算法,才造就了計算機的“智能大腦”。
人們已經設計出了許多非常“聰明”的算法,極大提高了我們解決問題的能力,但實際應用中復雜的問題依然期待我們給出更有效的算法,這也是計算機科學家工作的重要部分。
推薦閱讀
- JavaScript:Functional Programming for JavaScript Developers
- HTML5 移動Web開發從入門到精通(微課精編版)
- Monitoring Elasticsearch
- PostgreSQL Replication(Second Edition)
- 深入RabbitMQ
- Mastering JavaScript High Performance
- Learning Unreal Engine Android Game Development
- 持續輕量級Java EE開發:編寫可測試的代碼
- Android應用開發深入學習實錄
- OpenMP核心技術指南
- Instant Zurb Foundation 4
- C指針原理揭秘:基于底層實現機制
- Android系統下Java編程詳解
- 高效使用Greenplum:入門、進階與數據中臺
- Learning Alfresco Web Scripts