當前位置:科普知識站>IT科技>

java|algorithm

IT科技 閱讀(1.07W)

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java algorithm是什麼,讓我們一起了解一下?

algorithm是在數學(算學)和計算機科學之中,爲任何良定義的具體計算步驟的一個序列,常用於計算、數據處理和自動推理,算法的核心是創建問題抽象的模型和明確求解目標。

衡量算法是否高效主要從哪幾個方面來分析?

1、簡單性和清晰度

一般我們都希望算法越簡單越清晰就越好,但是要保證效率爲前提。可是,往往我們在複雜的項目開發中所遇見的問題比較複雜,對時間和空間效率的要求也較高,因此,算法一般都會比較複雜。

2、空間效率:這裏的空間效率並不是指算法代碼佔用的內存指令空間,而是指代碼中的數據分配(變量與變量所引用值的分配)以及方法調用所使用的內存(調用棧的空間分配)。

比如,我們常用的遞歸,雖然會使代碼清晰簡單,但是內存的使用也會大大提高。理想的程序所使用的內存應該和數據及方法調用所佔用內存相等。但事實總是會有些額外的開銷,因此,空間效率也是我們衡量算法的方面之一。

java algorithm

3、時間效率:針對同一任務所使用的不同算法所執行的時間都會不同。

比如:在一個數據集合中查找數據,我們會從第一個數據開始查找,一直找到需要的數據爲止,如果查找數據存在,則這種查找方式(稱之爲線性查找)一般要查找半個列表。然而,如果數據的排放是有序的,則透過另一種查找方法會更有效,即二分查找法,首先從集合的中間開始,如果查找值在中間值的前面,則從集合的前一半重複查找,否則從後一半查找,每執行一次則將查找的集合減少爲前一次的一半。

那麼我們如何使用algorithm來進行實戰操作?

案例:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月又生一對兔子,假如兔子都不死,問第二十個月的兔子對數爲多少?

 int[] arr = new int[20];        // 第一個月和第二個月兔子的對數都是1        arr[0] = 1;        arr[1] = 1;        for (int x = 2; x < arr.length; x++) {            arr[x] = arr[x - 2] + arr[x - 1];        }        System.out.println("第二十個月的兔子有 " + arr[19] + " 對");