導航:首頁 > 數據處理 > 演算法的數據規模是什麼

演算法的數據規模是什麼

發布時間:2023-02-09 03:43:45

A. 演算法的時間復雜度是什麼

演算法的時間復雜度,是一個用於度量一個演算法的運算時間的一個描述,本質是一個函數。

根據這個函數能在不用具體的測試數據來測試的情況下,粗略地估計演算法的執行效率,換句話講時間復雜度表示的只是代碼執行時間隨數據規模增長的變化趨勢。

常用大O來表述,這個函數描述了演算法執行所要時間的增長速度,記作f(n)。演算法需要執行的運算次數(用函數表示)記作T(n)。存在常數 c 和函數 f(n),使得當 n >= c 時 T(n) <= f(n),記作 T(n) = O(f(n)),其中,n代表數據規模也就是輸入的數據。

時間復雜度如何計算

1、常量階:只要代碼的執行時間不隨 n 的增大而增長,這樣代碼的時間復雜度都記作 O(1)。或者說,一般情況下,只要演算法中不存在循環語句、遞歸語句,即使有成千上萬行的代碼,其時間復雜度也是Ο(1)。

2、線性階、n方階:一般情況下,如果循環體內循環控制變數為線性增長,那麼包含該循環的演算法的時間復雜度為O(n),線性階嵌套線性階的演算法時間復雜度為O(nⁿ),涉及下文乘法法則。

3、線性對數階:當一個線性階代碼段法嵌套一個對數階代碼段,該演算法的時間復雜度為O(nlogn)。

4、指數階和階乘階:根據函數,隨著n的增加,運行時間會無限急劇增加,因此效率非常低下。

B. 機器學習的演算法和普通《演算法導論》里的演算法有什麼本質上的異同

作者:董可人
鏈接:http://www.hu.com/question/24976006/answer/29682806
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

演算法導論里的演算法本質上是對有精確解的問題,如何更有效率地求得這個解。這個效率可以是計算時間更短,也可以是計算過程所需要的空間更少。

一個簡單的例子是,給定一個亂序數組,如何快速的將其按從小到大的順序重新排列,或者找到其中的中位數。這些問題都有確定且唯一的答案,一般都會有一個笨方法(窮舉或遍歷),只要一步一步來就可以解,所謂演算法只是如何精簡步驟,更快更省事地找到這個解。這些演算法處理的數據也都是結構簡潔且干凈的類型,比如數組,二叉樹,圖之類的數據結構。數據規模對於這些演算法而言,影響的是計算所需的時間和空間,不會因為規模改變而影響演算法本身的邏輯以及計算的結果。

機器學習要解決的問題一般沒有精確解,也不能用窮舉或遍歷這種步驟明確的方法找到解,而且需要強調的是「學習」這個屬性,即希望演算法本身能夠根據給定的數據或計算環境的改變而動態的發現新的規律,甚至改變演算法程序的邏輯和行為。

舉例來說,可以是把一千份文檔歸類到不同的幾個類別里。最簡單的可以是給定幾個類別,比如新聞,小說,詩歌等,演算法來根據文章內容自動劃分到對應的類別里。這里可以看出這個問題即使讓人做,也有很多模糊不能確定的地方,比如一篇法制晚報上的犯罪紀實是應該劃到新聞,還是小說呢?或者說一篇長詩比如荷馬史詩是應該歸在小說還是詩歌呢?機器學習演算法想要解決的,就是根據從文章內容里找到的規律,來自動的給出一個劃分。而不同演算法可以給出不同的解,這些解都可以是「正確」的,所以一般還需要人為設計一個評判標准來決定孰優孰劣。

也可以不事先給定類別,而是讓演算法自己去發現文章中的規律,把相似度高的文章劃分到一起。這樣不同的演算法可能給出不同數量的類別劃分,可能是三個,四個,或者五個,也都可以是「正確」的劃分。甚至什麼是「相似度」,不同演算法也可以給出不同解釋,可以是名詞動詞形容詞的詞頻及比例,也可以是句子的語法結構等。

更進一步的,你可能還希望這個演算法能夠用來判斷一份新的文檔的類別。而輸入的新文檔越多,也會進一步擴大初始數據集的規模,規模變大以後,原來數據中不明顯的規律可能就變明顯了。比如說原來一千份文檔中只有一篇議論文,可能大多演算法都無法把它單獨劃出一個類別,但當你持續輸入一百份議論文後,數據中議論文的比例就變成了101/1100,差不多10%,這時候演算法就應該劃分出單獨的議論文類別。在這個意義上,數據本身也對演算法有很大的影響,這也是和演算法導論中的演算法的一個本質區別。

技術上說,演算法導論中的演算法關注點在數據結構和計算復雜度,屬於離散數學的一個分支,不涉及微積分等高等數學概念。機器學習的演算法本身是基於概率,統計和優化(optimization)等理論和技術,從這個角度上說給人感覺更「數學」一點。

在具體的實現細節上,機器學習的演算法會大量應用演算法導論中的技術來改進計算效率。但需要強調這僅僅是對底層實現來說,在演算法本身的邏輯上,二者沒有太多聯系。換句話說,演算法導論中的技術可以幫助你寫出更快的程序來運行機器學習演算法,但是這對機器學習要解決的問題本身是沒有什麼幫助的。熟練使用二叉樹散列表,准確估算一個圖演算法的復雜度,都沒有任何可能幫助你猜到在女朋友過生日時送什麼禮物最好(使用了機器學習演算法的淘寶君卻很可能知道!)。因此不要把它們看成是搭積木拼構件的關系。

最後,如果以上解釋仍然讓你費解,那麼還有一個更通俗的解釋:演算法導論是教你如何數數,而機器學習基本上相當於星座算命。一個很機械,一個靠忽悠,差不多就是這樣吧。
具體分析見鏈接:http://www.hu.com/question/24976006

C. 大數據是怎麼定義的,大數據包括什麼

大數據無疑是近些年來科技領域的一個重要概念,隨著越來越多的企業開始逐漸參與到大數據產業鏈中,大數據自身的定義也在不斷得到豐富和發展。
要想定義大數據,可以從以下三個方面來進行定義:
第一:大數據重新定義了數據的價值。大數據既代表了技術,同時也代表了一個產業,更代表了一個發展的趨勢。大數據技術指的是圍繞數據價值化的一系列相關技術,包括數據的採集、存儲、安全、分析、呈現等等;大數據產業指的是以大數據技術為基礎的產業生態,大數據的產業生態目前尚未完善,還有較大的發展空間;發展趨勢指的是大數據將成為一個重要的創新領域。
第二:大數據為智能化社會奠定了基礎。人工智慧的發展需要三個基礎,分別是數據、算力和演算法,所以大數據對於人工智慧的發展具有重要的意義。目前在人工智慧領域之所以在應用效果上有較為明顯的改善,一個重要的原因是目前有了大量的數據支撐,這會全面促進演算法的訓練過程和驗證過程,從而提升演算法的應用效果。
第三:大數據促進了社會資源的數據化進程。大數據的發展使得數據產生了更大的價值,這個過程會在很大程度上促進社會資源的數據化進程,而更多的社會資源實現數據化之後,大數據的功能邊界也會得到不斷的拓展,從而帶動一系列基於大數據的創新。
最後,大數據之所以重要,一個重要的原因是大數據開辟了一個新的價值領域,大數據將逐漸成為一種重要的生產材料,甚至可以說大數據將是智能化社會的一種新興能源。

D. 關於數據結構的問題規模和演算法效率的疑問

1 都是n,i是隨機的,在n的范圍裡面,當然和n有關~O(N)不是等於n,是n的一個倍數,是一個復雜度表示,不是確切的數。
2 第一個演算法,兩層FOR,是0(N^2)復雜度;第二個演算法,當然兩個操作都是基本操作,復雜度是O(N)。你如果還不理解,建議你還是好好吧大O表示法好好看一次。

E. 信息奧賽 數據規模 什麼意思

說白了就是數據的多少唄。
比如在排序中待排序的數據的個數是100還是10000,這就是數據規模的不同,數據規模對於演算法是很重要的。

F. 排序演算法對數的多少有要求嗎

排序演算法的時間復雜度通常是以平方數量級來衡量的,即 O(n^2),其中 n 是要排序的數據的個數。對數數量級的排序演算法,即 O(log n) 的演算法,其時間復雜度隨著數據規模的增長而線性增長,因此比起 O(n^2) 演算法來說,它們的運行速度要快得多。
不過,並不是所有的排序演算法都有這樣的時間復雜度要求。例如,冒泡排序和選擇排序都是 O(n^2) 的演算法,它們在處理大規模數據時可能會變得非常慢,但在處理較小規模的數據時,它們的運行速度可能會比 O(log n) 演算法快。因此,在實際應用中,需要根據實際情況來選擇合適的排序演算法。

G. 誰可以用簡單易懂的話給我解釋下數據結構里的 問題規模指的是什麼還有時間復雜度, 最好舉個例子!

問題規模指 解決問題需要的空間。
時間復雜度 是演算法執行需要的時間
比如 對 1--n個無序的數 排序。
可以使用 比較排序法,只要一個哨兵的空間 chuck最小元素,時間復雜度是n^2

H. 演算法里的輸入規模是什麼

輸入規模決定演算法

運算量 n! 2^n n^3 n^2 nlogn n
最大規模 11 26 464 10000 4.5*10^6 1000000000
速度擴大兩倍 11 27 587 14142 8.6*10^6 2000000000
這個表給出了機器速度擴大兩倍後,演算法所能解決的規模的對比。可以看出,n!和2n不僅能解決的問題規模十分小,而且增長緩慢;最快的nlogn和n演算法不僅解決問題
的規模大,而且增長快。我們把漸進時間復雜為多項式的演算法稱為多項式時間演算法(polymonial-time algorithm),也稱有效演算法;而n!或者2^n這樣低效演算法稱為指數時間演算法(exponential-time algorithm).
盡管如此,考慮到目前主流機器的執行速度,多數演算法競賽所選取的數據規模基本符合此表。例如,一些指明n<=8的題目,可能n!的演算法已經足夠,n<=20的題目需要2^n的演算法,而n<=300的題目可能就需要用至少n^3的多項式演算法.

I. C++編程數據規模的30%的數據是什麼意思

就是對於你的程序,如果你測試的時候選擇30%的數據,判斷輸入數據的時候 要加上n,m<=100的判斷,
100%類似

閱讀全文

與演算法的數據規模是什麼相關的資料

熱點內容
注塑產品如何開機 瀏覽:989
建設銀行普通信息卡是哪個 瀏覽:368
電商黑馬技術有多少 瀏覽:963
三聖花鄉花市場搬到哪裡去了 瀏覽:294
口腔醫學技術多少人學 瀏覽:312
權健產品什麼時候重新上市 瀏覽:637
做電商怎麼跑市場 瀏覽:338
雙子冠軍有哪些產品 瀏覽:327
沈陽菜市場都在哪個地方 瀏覽:983
焊接技術員可以賺多少錢 瀏覽:233
c語言程序表示一年有多少秒 瀏覽:872
紅字發票信息表附在哪裡 瀏覽:664
交易貓騰訊號已發貨多久交易成功 瀏覽:324
中國基因技術如何 瀏覽:877
化妝品批發代理商需要什麼資質 瀏覽:25
p城的技術怎麼樣 瀏覽:109
技術類體操的基礎技術是什麼 瀏覽:18
網路登不上了如何查詢以前信息 瀏覽:898
陌陌如何設置拒絕接收信息 瀏覽:127
陽泉二手車市場哪個好 瀏覽:354