演算法採集1

2021-07-11 04:36:52 字數 544 閱讀 6113

從100萬個數字中找到最大的10個數字

迴圈大陣列的每乙個元素,如果當前數字大於這10個數字的最小值,就剔除最小值,將當前數字寫進去。如果10個數字是有序的,那麼就可以快速定位數字要寫入的位置;如果是無序的,則只需要重新找出最小值即可。如果數字比較隨機,那麼隨著不斷的疊加,這個最小值也會變得越來越大,這10個數字需要再次插入的概率就會變小很多,即使是在最壞的情況下,每個數字都要插入到10個數字中剔除最小的,也最多需要10*100萬的運算量,而不需要100萬*100萬。

當拆分成多個塊以後,板塊內部的排序是隔離的,因此各個板塊是可以並行排序的,而且無序加鎖,如果面對的是超大資料,還可以利用多執行緒來降低處理時間,將這個問題細化,這就是分布式計算的的原理。

變數交換的幾種方式

使用中間變數的方法來交換資料

使用相加減的方式:a=a+b;b=a-b;a=a-b;,但是注意a+b容易出現越界問題。

使用異或的方式:a=a^b;b=a^b;a=a^b,此種方法效率最高。

演算法提高 金屬採集

問題描述 人類在火星上發現了一種新的金屬!這些金屬分布在一些奇怪的地方,不妨叫它節點好了。一些節點之間有道路相連,所有的節點和道路形成了一棵樹。一共有 n 個節點,這些節點被編號為 1 n 人類將 k 個機械人送上了火星,目的是採集這些金屬。這些機械人都被送到了乙個指定的著落點,s 號節點。每個機械...

Python資料採集1 BeautifulSoup

1.網路資料採集是一種通過多種手段收集網路資料的方式。最常用的方法是寫乙個自動化程式向網路伺服器請求資料 通常是用html表單或其他網頁檔案 然後是對資料進行解析,提取所需要的資訊。2.網路爬蟲工作流程 1 通過 網域名稱獲取html資料 2 根據目標資訊解析資料 3 儲存目標資訊 4 如有必要,轉...

python網路資料採集練習1

基於書籍 python網路資料採集 美 ryan mitchell 第二章2.2.1 用bs4在 中讀取所有顏色為綠色的字段。from urllib.request import urlopen from bs4 import beautifulsoup html urlopen bsobj bea...