㈠ 求一個高效對比演算法,比較兩個datatable數據
用linq來實現,先定義兩個dt,這個可以換成你程序中的
DataTable dt1 = new DataTable(); //第一個datatable
DataTable dt2 = new DataTable(); //第二個datatable
思路:
1.根據某個欄位,找到dt1和dt2中重復的數據集合(我這里用的是Id,只要id相同我就認為是重復的數據)
2.在dt1中減去上面找到的重復的集合,就是在dt1中取重復數據的補集。
var dt3 = from r in dt1.AsEnumerable() where !(from rr in dt2.AsEnumerable() select rr.Field<int>("Id")).Contains(r.Field<int>("Id")) select r;
㈡ 兩段語音相似度對比,什麼演算法識別率高
可以用兩個語音軟體測試測試,說出同樣的一段話就好了,就知道哪個語音識別率好了,就像錄音轉文字助手就可以把語音轉換成文字。
點開里邊的錄音識別功能,說出你要測試的語音,就可以把語音轉成文字了,你可以去跟其他的比較一下。
㈢ 圖像比對的原理或者演算法
有雜訊情況下。1、配准;2、兩張圖的圖像塊分別計算特徵(lbp,sift等);3、計算特徵的距離(歐式距離等)。在matlab或opencv下都可以。
㈣ 如何比較兩個演算法的好壞,有什麼指標
演算法是一個良定義的計算過程,以一個或多個值輸入,並以一個或多個值輸出。
評價演算法的好壞的因素:·演算法是正確的;
·執行演算法的時間;
·執行演算法的存儲空間(主要是輔助存儲空間);
·演算法易於理解、編碼、調試。
**************************************************************************************************************
時間復雜度:是某個演算法的時間耗費,它是該演算法所求解問題規模n的函數。
漸近時間復雜度:是指當問題規模趨向無窮大時,該演算法時間復雜度的數量級。
評價一個演算法的時間性能時,主要標准就是演算法的漸近時間復雜度。
演算法中語句的頻度不僅與問題規模有關,還與輸入實例中各元素的取值相關。
時間復雜度按數量級遞增排列依次為:常數階O(1)、對數階O(log2n)、線性階O(n)、線性對數階O(nlog2n)、平方階O(n^2)、立方階O(n^3)、……k次方階O(n^k)、指數階O(2^n)。
空間復雜度:是某個演算法的空間耗費,它是該演算法所求解問題規模n的函數。
演算法的時間復雜度和空間復雜度合稱演算法復雜度。
㈤ 跟別人對比演算法需要把人家的也實現一遍嗎
用一句說話答你的話, 那就是 : 演算法只是程序中可以處理的其中一件事. 演算法, 基本上就是以數學的形式去對一個 "模式" 的模術, 例如最簡單的畢氏定理 a^2 + b^2 = c^2 . 當然還有更多更復雜的演算法, 例如 OpenCV 對面容辨識的各種演算法, 從距離,
㈥ 兩個數組比較(演算法) 怎樣算最優化
我覺得,如果已知兩個數組元素數目相同,那就對兩個數組分別排序,然後對兩個數組從第一個元素開始進行比較,這樣就能得出結果了。
㈦ 怎麼判斷比較各種演算法的好壞
首先,這個演算法必須是正確的
其次,好的演算法應該是友好的,便於人們理解和交流,並且是機器可執行的。
這個演算法還需要足夠健壯,即當輸入的數據非法或不合理時,也能適當的做出正確的反應或進行相應的處理
最後它還必須擁有高效率和低存儲量要求。
也就是樓上幾位說的時間復雜度和空間復雜度
占的地方越小,算得越快的演算法才是好演算法。
㈧ 演算法設計:比較兩個文件的差別
兩個文件可以比較是否相同,不同在哪裡?
最簡單辦法:comp file1 file2 d/a/l/n=n/c/off n
但是如何進行更改的,就涉及到操作的追溯。這個過程是不可逆的。所以無解。
除非有操作記錄表!可以追溯。
㈨ 數據快速比較演算法
你想知道每位相不相同嗎?我看你這是二級制數吧,如果是二進制可以用位運算的異或,相同為0,不同為1,這是最快的了,時間復雜度為O(1),掩碼的操作都是用位運算的,不用什麼查找。
如果你不知道位運算是啥,還是自己網路一下吧
㈩ 比較Dijkstra演算法與Floyd演算法。
(1)Dijkstra演算法:在網路中用得多,一個一個節點添加,加一個點刷一次路由表。
Dijkstra演算法是典型的演算法。Dijkstra演算法是很有代表性的演算法。Dijkstra一般的表述通常有兩種方式,一種用永久和臨時標號方式,一種是用OPEN, CLOSE表的方式,這里均採用永久和臨時標號的方式。注意該演算法要求圖中不存在負權邊。
(2)Floyd演算法:把所有已經連接的路徑都標出來,再通過不等式比較來更改路徑。
Floyd演算法又稱為插點法,是一種用於尋找給定的加權圖中多源點之間最短路徑的演算法。該演算法名稱以創始人之一、1978年圖靈獎獲得者、斯坦福大學計算機科學系教授羅伯特·弗洛伊德命名。