java algorithm是什么,讓我們一起了解一下?
algorithm是在數學(算學)和計算機科學之中,為任何良定義的具體計算步驟的一個序列,常用于計算、數據處理和自動推理,算法的核心是創建問題抽象的模型和明確求解目標。
衡量算法是否高效主要從哪幾個方面來分析?
1、簡單性和清晰度
一般我們都希望算法越簡單越清晰就越好,但是要保證效率為前提。可是,往往我們在復雜的項目開發中所遇見的問題比較復雜,對時間和空間效率的要求也較高,因此,算法一般都會比較復雜。
2、空間效率:這里的空間效率并不是指算法代碼占用的內存指令空間,而是指代碼中的數據分配(變量與變量所引用值的分配)以及方法調用所使用的內存(調用棧的空間分配)。
比如,我們常用的遞歸,雖然會使代碼清晰簡單,但是內存的使用也會大大提高。理想的程序所使用的內存應該和數據及方法調用所占用內存相等。但事實總是會有些額外的開銷,因此,空間效率也是我們衡量算法的方面之一。
3、時間效率:針對同一任務所使用的不同算法所執行的時間都會不同。
比如:在一個數據集合中查找數據,我們會從第一個數據開始查找,一直找到需要的數據為止,如果查找數據存在,則這種查找方式(稱之為線性查找)一般要查找半個列表。然而,如果數據的排放是有序的,則通過另一種查找方法會更有效,即二分查找法,首先從集合的中間開始,如果查找值在中間值的前面,則從集合的前一半重復查找,否則從后一半查找,每執行一次則將查找的集合減少為前一次的一半。
那么我們如何使用algorithm來進行實戰操作?
案例:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月又生一對兔子,假如兔子都不死,問第二十個月的兔子對數為多少?
?int[]?arr?=?new?int[20]; ????????//?第一個月和第二個月兔子的對數都是1 ????????arr[0]?=?1; ????????arr[1]?=?1; ????????for?(int?x?=?2;?x?以上就是小編今天的分享了,希望可以幫助到大家。