高斯的1~100運算
普通的運算:
高斯的運算:
-可能以計算機的神速,兩個演算法都可以秒殺解決掉!但是,如果我們把條件換成1加到1千萬,或者1加到1千億,差距就可想而知了,好的演算法甚至讓人腦快過電腦。
輸入、輸出、有窮性,確定性和可行性。
輸入:輸出:
有窮性:
確定性:
可行性:效率高一般指的是演算法的執行時間快。
比較容易想到的方法就是我們把演算法跑若干次,然後拿個「計時器」在旁邊計時。這種方法叫做-事後統計方法。
事後統計方法:這種方法主要是通過設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低。
但這種方法顯然是有很大缺陷的:
我們把剛剛的估算方法稱為事後諸葛亮。
為了對演算法的評判更為科學和便捷,他們研究出事前分析估算的方法。
在電腦程式編寫前,依據統計方法對演算法進行估算。
估算依據:
如果想成為好人,就去做個菩薩。用你相信你是菩薩的時,你就是乙個菩薩了。
很多時候,決定乙個人的並不是他之前做過什麼,而是在那之後,他意識到了什麼。
--演算法時間複雜度:
推導大o階:
根據執行時間分為:
通常除非特別指定,我們提到的.執行時間都是最壞情況的執行時間。
--演算法空間複雜度:
資料結構筆記 二
在上次分享中,我分享了資料結構的一些基本概念,大家都知道,資料結構和演算法是密不可分的,本次我將討論演算法的基本概念,以及時間複雜度等問題 什麼是演算法 演算法是針對問題根據問題的特性來預先設計的求解過程。資料得以描述,目的是為了解決問題。如何針對各種各樣的資料結構與問題規模去設計不同的過程解決特定...
資料結構筆記(二)
優點 無需為表示表中元素之間的邏輯關係而增加額外的儲存空間 可以快速查詢元素,修改元素 o 1 缺點 插入,刪除的時間複雜度 o n 線性表長度變化較大時,難以確定儲存空間的容量 造成儲存空間的 碎片 棧是限定僅在表尾進行插入和刪除操作的線性表 棧頂 top 棧底 bottom 不含任何資料元素的棧...
演算法筆記(二)資料結構
資料結構實計算機中對資料的一種儲存和組織的方式,同時也泛指相互之間存在一種或多種特定關係的資料的集合。到現在為止,計算機技術領域中還沒有乙個統一的資料結構的定義。以下是引用的部分解釋 data structure d,r 其中d是資料元素的集合,r是該集合中所有元素之間的關係的有限集合。2 sart...