歐盟訪越談FTA批准程序 越南政府盼解除漁業警告黃牌

摘錄自2019年10月31日中央社報導

越通社新聞網站30日報導,歐洲議會國際貿易委員會主席朗吉(Bernd Lange)近日訪問越南,30日與越南國會主席阮氏金銀會晤,聚焦討論歐盟與越南自由貿易協定(EVFTA)及投資保護協定(EVIPA)的批准程序。

另外,歐盟自2017年10月將越南列入「打擊非法、未報告及不受規範」(IUU)漁業警告黃牌名單。阮氏金銀表示,越南正致力取締並防範非法、未報告及不受規範捕撈情況,改善國內法律系統以及加入相關國際條約,促進漁業永續發展,希望歐盟解除漁業警告黃牌。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

憂觸發地震 英暫停開採頁岩天然氣爭議作業

摘錄自2019年11月2日中央通訊社英國報導

英國政府2日宣布,由於有觸發地震的風險,將暫停在英格蘭以具爭議的液體壓裂法來開採頁岩天然氣蘊藏。

法新社報導,商業暨能源大臣李德森(Andrea Leadsom)說:「在檢視關於近期在普勒斯頓新路區(Preston New Road)地震活動的報告之後,顯然我們不能排除未來可能對當地社區造成無法接受的影響。」普勒斯頓新路區指的是能源企業Cuadrilla在英格蘭西北部蘭開夏郡(Lancashire)的開採場址。

液體壓裂法用於開採頁岩天然氣,是利用液壓壓裂岩層,汲取其中的天然氣。英國的北海石油與天然氣監管局(OGA)近期的報告提到,目前不可能精準預測水力壓裂法觸發地震的可能性,這讓英國首相強生(Boris Johnson)表示,他對頁岩天然氣的開採作業感到「非常憂慮」。

英國將於12月12日改選國會,預料此事會是競選期間的議題之一。根據英國國家審計部(National Audit Office),反對開採頁岩天然氣的英國群眾已從2013年的21%增加到40%,「大眾關注液體壓裂法引起的地震對環境及公共衛生的風險,以及現有環境法規的充足性」。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

續航320公里!通用汽車2017年上市雪佛蘭小型電動車

通用汽車(GM)在2015年北美車展上推出了雪佛蘭品牌全新Bolt電動概念車。近日,有媒體從相關管道獲悉,通用汽車計畫於2016年10月起投產雪佛蘭Bolt純電動車,新車預計將在2017年正式上市,其續航里程可達320km,上市後將與BNW i3等同級車款相互競爭。   按照規劃,通用汽車預計將於2016年10月起在底特律北部的奧賴恩(Orion Township)小型車工廠投產雪佛蘭Bolt純電動車。通用的目標是每年生產大約25,000至30,000 輛雪佛蘭Bolt,預計售價區間在30,000至35,000美元之間,扣除聯邦退稅優惠後有望降至30,000美元以下。   針對雪佛蘭Bolt是否考慮引入中國市場,通用汽車全球執行副總裁兼中國總裁錢惠康表示:「從中國市場來說,如果進入到(純電動車)這個領域,我們主要會考慮當地語系化生產,因為只有國產才能讓較高的車輛價格享受到國家的新能源政策補貼,讓價格更利於消費者接受。」

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

北汽新能源捐予紅十字會10輛純電動車 提新戰略目標

2015年1月28日,北京新能源汽車股份有限公司向北京市紅十字會捐贈十輛純電動新能源汽車,包括5輛ES210、5輛E150EV,總價值達人民幣247.8萬元,定向用於貴陽市突發事件處置、緊急救援等方面。   日前,北汽新能源在剛舉辦的全球價值鏈大會上提出了「衛藍事業計畫2.0」的戰略目標,2020年前欲達到整車銷售20萬輛以上、降低碳排放20%以上的目標,成為『中國領先、國際一流』的新能源汽車領導品牌。其中,2015年欲達到整車銷售2萬輛以上,並繼續在中國深入開展徵集「衛藍先鋒」的企業社會責任之旅。   同時,北汽新能源還發佈了「441」充電業務戰略規劃,即加快完善體系建設、充電服務平臺、充電佈局和增值服務四大板塊;重點佈局北、上、廣、深四大城市;至2017年完成10000個自建公共充電設施,以加快衛藍事業的快速發展。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準

特斯拉上季呈現虧損;擬針對中國客戶調整電動車功能

美國電動車廠特斯拉(Tesla)公布季度虧損,同時宣布將針對全球最大汽車市場、也就是中國大陸的客戶,調整電動車功能。   特斯拉第 4 季扣除特定項目,每股虧損 13 美分。此外,特斯拉執行長 Elon Musk 先前說過,他預期中國銷售量最快在 2015 年就可能匹敵美國銷售量。但消息人士透露,今年 1 月特斯拉在中國賣出大約 120 輛汽車,遠低於公司目標。   特斯拉表示,目前正在針對中國客戶進行調整,希望能於交車前先在買主家中安裝充電系統,讓更多大陸客戶對購買 Model S 更有信心。      

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

新北清潔公司,居家、辦公、裝潢細清專業服務

中國首屆電動車購車節賣出303輛 北京客戶占69%

中國首屆電動汽車購車節於2月10日正式收官。本次活動由電動汽車垂直網站電動邦主辦,北汽新能源、啟辰、上汽榮威、上海通用、騰勢、比亞迪、大眾、寶馬等多家企業參與,11款主流電動車參與搶購。北京新能源汽車行銷有限公司許國慶表示:“北汽、啟辰、比亞迪是本次活動的最大贏家。”   首屆電動車購車節參與活動的總人數已達10萬餘人次,共賣出了303輛電動車,車款金額達3880萬人民幣。在2月10日10點正式開始的線上搶購中,短短20分鐘時間就有超過220名網友完成了線上搶購。其中,啟辰晨風、北汽E150ev、EV200、騰勢、比亞迪秦等成為最熱銷車型。各車型預約人數為4785人次。而在地域分佈中,北京以69%的用戶數拔得頭籌。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※想知道最厲害的網頁設計公司"嚨底家"!

※幫你省時又省力,新北清潔一流服務好口碑

※別再煩惱如何寫文案,掌握八大原則!

電動車主再享便利!北京市發布公用充電設施分佈圖

2月11日,北京市發改委發佈了「北京市電動汽車社會公用充電設施分佈圖」,電動車車主可透過網站、手機APP、微信等方式查找附近的充電設施,包括查詢充電站的建設分佈、具體位置、充電樁數量、充電口空閒數等資訊。   北京市發改委介紹,自2009年以來,全市累計建成了約6600根充電樁及5座換電場站,車輛推廣與充電樁建設數量比例約為1.5:1。按服務車輛類型和服務領域不同,全市充電設施主要分為三類,包括公共專用、私人自用和社會公用充電樁。   在公車、環境清潔車、計程車等公共專用領域,已建成充換電場站234座(其中含換電場站5座),充電樁3676個,日服務能力超過1.7萬車次。在私人自用領域,目前已建自用充電設施約1500個,自用建樁率約50%。在社會公用領域,全市累計建成約1500個社會公用充電樁,50%以上佈局在北京四環路以內,60%以上佈局在北京五環路以內,初步形成了中心城區平均服務半徑5公里的快速補電網路。   目前,全市已完成了1000根社會公用充電樁調試工作並對外開放投運,其餘部分將抓緊調試並爭取在春節前後投入使用。中國發改委介紹,下一步重點將在大型商圈等社會公共停車場和京津冀高速路服務區等領域,打造社會公用充電服務網路,2015年力爭在北京六環路內建成平均服務半徑為5公里的充電網路。

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

新北清潔公司,居家、辦公、裝潢細清專業服務

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

樂視進軍電動車步伐加近:砸數十億美元 美國市場為目標

(圖片來源:leiphone.com)

  2月12日,媒體報導,樂視網資訊技術(北京)股份有限公司稱計畫投資數十億美元開發電動汽車,將美國定為首要目標市場。   此前的1月19日,樂視網正式確認「SEE計畫」即樂視超級汽車計畫。公司表示,這是由控股股東樂視控股所開展的一項旨在打造一個全球獨有的垂直整合汽車互聯網生態系統的重要戰略。   受超級汽車計畫等一系列利好影響,2月11日,樂視網以584億元人民幣(下同)的市值躍升創業板首位。自去年12月23日起,其股價從28.2元的底部漲至11日的69.43元,大漲146%。  
動態:正就專案資金與投資方磋商   上任伊始的樂視汽車業務中國負責人呂征宇接受電話採訪時表示,樂視計畫招聘更多人才以加強現有大約260人的電動汽車專案團隊。他說,樂視將這個專案視為一項長期投資,正在就專案資金與投資方進行磋商。樂視計畫投資數十億美元,將美國定為首要目標市場。他沒有透露更多細節。   樂視董事長賈躍亭誓言「顛覆」傳統汽車行業,宣佈要打造一款智慧化和互聯化程度更高的汽車。其目標是比亞迪和長城汽車等更成熟的中國車企未能實現的目標:把汽車賣給美國消費者。   呂征宇曾在日產汽車旗下英菲尼迪供職。他確信,就像賈躍亭所說的那樣,對於每件新生事物,當人們第一次看到的時候,首先會忽視你,然後會笑話你,再然後會反對你,然後你就贏了;利用自己在設計、製造和分銷方面的優勢,樂視有機會顛覆傳統汽車行業。  
回顧:北汽曾表示願意代工   2014年7月21日,國務院公佈《關於加快新能源汽車推廣應用的指導意見》,阿里巴巴與樂視網分別傳出要進軍汽車領域,一個牽手上汽,一個牽手北汽。   2014年4月份,北汽董事長徐和誼在一次公開場合就提出,「汽車企業未來可能會成為互聯網企業的貼牌製造商」這一觀點,甚至點名「樂視網」,表示願意「代工生產樂視汽車」。   在徐和誼看來,新能源汽車按照傳統汽車模式肯定不行。新能源汽車產業與傳統汽車產業不只是在燒油與用電方面的區別,「新能源汽車是一個全新的行業,必須要用全新的模式與之相適應」,而這個新模式的合作物件目前來看首選樂視的可能很大。   知名產業評論家信海光在微信中披露,樂視CEO賈躍亭在美期間,除了佈局海外市場,在美國創立兩家子公司,推動樂視生態業務全球化全面啟動外,另一高度保密專案,就是樂視汽車專案。據悉,賈躍亭在美國和徐和誼密會,初步達成合作汽車的意向,至於細節不得而知。   2014年4月9日,賓士CLA與樂視強強聯合上演了一場時尚行銷秀。賓士發言人表示其品牌看中了樂視網中極具潛力、並願為生活品質買單的高端用戶,而這批用戶對於北汽開拓新能源汽車市場十分關鍵。此外,寶馬、英菲尼迪等高端車企品牌也都上過樂視超級電視廣告。樂視一直強調的「生態」建設,是樂視進軍汽車業的驅動力,也是樂視推出互聯網汽車的良好土壤。   按照目前的樂視產品思路,互聯網行銷方式與產品價格將是撒手鐧,評論人士認為,樂視汽車一旦推向市場,會很大程度推動新能源車或者互聯網汽車的市場普及,而樂視網本身也會很快走向年營收千億元這一量級。  
影響:超級計畫引爆股價   2015年2月11日,樂視網收穫本週第2個、今年第5個漲停板。憑藉密集發力榮登創業板老大的樂視網,以市值584億元遠遠甩開第二名東方財富,後者總市值為498億元。   樂視網市值躍升首位,用了35個交易日。自去年12月23日起,其股價從28.2元的底部漲至11日的69.43元,大漲146%。   市場人士認為,樂視網已經與京東、小米、360一起,組成繼百度、阿里巴巴和騰訊之後的中國互聯網第二梯隊。樂視的總市值已經超越奇虎360,資料顯示,在納斯達克上市的360市值為78億美元,約合人民幣488億元。   樂視網股價任性飆升的背後,是電動超級汽車等計畫獲得了市場認同。   1月14日,美國影響力最大的商業科技媒體Business Insider刊發文章,認為中國互聯網公司樂視CEO賈躍亭將憑藉電動超級汽車,與推出特斯拉電動汽車的埃隆•馬斯克一樣,成為全球矚目的明星企業家。Business Insider文中稱:賈躍亭將是中國的「埃隆•馬斯克」。   1月19日,樂視網正式確認「SEE計畫」即樂視超級汽車計畫。公司表示,這是由控股股東樂視控股所開展的一項旨在打造一個全球獨有的垂直整合汽車互聯網生態系統的重要戰略,樂視網與其運營主體並無股權關係,短期內也不會對公司業績構成影響。   連結:特斯拉跌落神壇敲響警鐘   2月11日,特斯拉中國1月銷量僅為120輛的消息幾乎佔據了各大財經和科技媒體的頭條。這家曾經令中國媒體不惜溢美之詞、引得自主品牌車企紛紛一探究竟的電動車製造企業,在一年後跌落神壇。   特斯拉的失敗不可避免地讓一大批揮師進軍汽車行業的互聯網公司坐立難安。通過「電腦+四個輪子」的品牌形象和打破4S經銷體系、主打直營的銷售模式,特斯拉吸引了不少中國擁躉,其中不乏小米和樂視這樣靠垂直整合起家的手機和電視廠商。   從目前已經公佈的樂視超級汽車等方案來看,特斯拉的這批中國學徒們均給自己貼上了「智慧汽車」、「互聯網汽車」的標籤,但在電動車最核心的電池、電機、電控及底盤技術上卻諱莫如深。   特斯拉希望通過推出廉價版的Model X來緩解單產品線的窘境,而電池成本的下降是實現低價版車型量產的基礎。馬斯克曾樂觀預計10年內特斯拉能夠將電池成本降到100美元/千瓦時,但包括電池專家在內紛紛對馬斯克的預期予以駁斥:不僅在2025年之前,電池成本不可能降低至167美元/千瓦時,而且特斯拉Model X價格將從原本的3萬美元定價提高到5-8萬美元。   特斯拉在中國市場陷入泥潭戳破了電動車的泡沫,當樂視小米們在造車的道路上越走越遠時,不得不回頭看看特斯拉的警示。   (文章來源:長江商報)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

新北清潔公司,居家、辦公、裝潢細清專業服務

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

從零開始認識堆排序

一、什麼是堆?

維基百科的解釋是:堆是一種特別的樹狀數據結構,它需要滿足任意的子節點必須都大於等於(最大堆)或者小於等於(最小堆)其父節點。

二、堆排序

堆排序是通過二叉堆數據結構實現,二叉堆滿足一下兩個特性:

1、滿足對的基本特性

2、完全二叉樹,除了最底層外,其它層都已填充滿,且是從左到右填充。

二叉堆的高度即為根節點到恭弘=叶 恭弘子節點的最長簡單路徑長度,即為θ(lgn)。

二叉堆上的操作時間複雜度為O(lgn)。

1、二叉堆中的元素個數

根據二叉堆的特性2,我們知道高度為h的二叉堆重元素個數如下:

根節點為1

第一層為2=21

第二層為4=22

第h-1層為2h-1

第h層元素個數範圍為[1,2h]

最底層之外的元素個數和為1+2+22+…+2h-1=(1-2h-1)/(1-2)=2h-1

高度為h的二叉堆元素個數範圍:[2h-1 + 1,2h-1+2h]=[2h,2h+1-1]

以高度為3的最大堆為例:

圖1

 圖2

2、二叉堆的高度

由二.1推導,我們知道高度為h的二叉堆的元素個數n滿足:

2≦ n ≦ 2h+1-1

=>

2≦ 2lgn ≦ 2h+1-1

=>

h ≦ lgn < h+1

由此可得,含有n個元素的二叉堆的高度為θ(lgn)

3、使用數組表示堆存儲

節點下標 i,則父節點下標為 i/2,左子節點下標為 2i,右子節點下標 2i + 1。

以圖1最大堆為例:

從根節點開始,根節點下標 1。

第一層節點下標:2、3

第二層節點下標:4、5、6、7

第三層節點下標:8

圖3

數組形式:

 圖4

具體到特定的編程語言,數組以0開始下標的,推導:

對於節點 i,則其父節點為 (i – 1)/2,左子節點下標為 2i + 1,右子節點下標 2i + 2。

4、堆的恭弘=叶 恭弘子節點

對於有n個元素的二叉堆,最後一個元素的下標為為n,根據二叉堆的性質,其父節點下標為n/2,因為每一層是由左向右進行構建,所以其父節點也是倒數第二層的最後一個節點,所以,其後的節點都為最底層節點,為恭弘=叶 恭弘子節點,下標為n/2 + 1、n/2 + 2… n。

具體到特定的編程語言,數組以0開始下標的,推到:

恭弘=叶 恭弘子節點下標為(n-1)/2 + 1、(n-1)/2 + 2… n。

5、堆維護

所謂堆維護,即保持堆的基本特性,以最大堆為例:給定某個節點,維護使得以其為根節點的子堆為滿足子節點都小於等於父節點。

如下,給定堆構建數組,及特定元素下標i:

public static void maxHeapify(int[] arr, int i) {
        int size = arr.length; //堆大小
        int maxIndex = i; //記錄當前節點及其子節點的最大值節點索引
        int left = 2 * i + 1; //左子節點索引
        int right = 2 * i + 2; //右子節點索引

        //對比節點及其左子節點
        if (left < size && arr[left] > arr[maxIndex]) {
            maxIndex = left;
        }

        //對比節點及其右子節點
        if (right < size && arr[right] > arr[maxIndex]) {
            maxIndex = right;
        }

        //不滿足最大堆性質,則進行下沉節點i,遞歸處理
        if (maxIndex != i) {
            int tmp = arr[i];
            arr[i] = arr[maxIndex];
            arr[maxIndex] = tmp;
            maxHeapify(arr, maxIndex);
        }
    }

如下圖,堆中元素9的維護過程:

 

 圖5

堆維護過程的時間複雜度:O(lgn)。

6、構建堆

根據二.4我們可以得到所有恭弘=叶 恭弘子節點的下標。我們可以使用二.5中的堆維護過程,對所堆中所有的非恭弘=叶 恭弘子節點執行堆維護操作進行堆的構建。

public static void buildHeap(int[] arr) {
        for (int i = (arr.length - 1) / 2; i >= 0; i--) {
            maxHeapify(arr, i);
        }
    }

以數組 {27,17,3,16,13,10,1,5,7,12,4,8,9,0} 為例進行堆構建,結果為:{27,17,10,16,13,9,1,5,7,12,4,8,3,0}

圖6

構建最大堆的時間複雜度為O(n)。

7、堆排序

首先執行最大堆構建,當前堆中最大值會上升到根節點,也就是堆數組的首節點。

我們可以通過交換首尾節點,使得最大值轉移至尾部,然後對除尾部元素外的堆數組執行根元素堆維護,上浮堆最大值。

然後,將最大值交換至數組尾部倒數第二個元素位置,重新執行剩餘堆數組的根元素堆維護,依次類推,直至剩餘堆數組大小變為2為止。

以二.6中數組為例:{27,17,3,16,13,10,1,5,7,12,4,8,9,0}

第一次執行:

{27,17,10,16,13,9,1,5,7,12,4,8,3,0},max:27

第二次執行:

{17,16,10,7,13,9,1,5,0,12,4,8,3},max:17

第三詞執行:

{16,13,10,7,12,9,1,5,0,3,4,8},max:16

第四次執行:

{13,12,10,7,8,9,1,5,0,3,4},max:13

第五次執行:

{12,8,10,7,4,9,1,5,0,3},max:12

第六次執行:

{10,8,9,7,4,3,1,5,0},max:10

第七次執行:

{9,8,3,7,4,0,1,5},max:9

第八次執行:

{8,7,3,5,4,0,1},max:8

第九次執行:

{7,5,3,1,4,0},max:7

第十次執行:

{5,4,3,1,0},max:5

第十一次執行:

{4,1,3,0},max:4

第十二次執行:

{3,1,0},max:3

第十三次執行:

{1,0},max:1

改造代碼實現:

    /**
     * 最大堆維護
     *
     * @param arr 堆數組
     * @param i 維護元素下標
     * @param offSet 原址偏移量
     */
    public static void maxHeapify(int[] arr, int i, int offSet) {
        int size = arr.length - offSet; //堆大小
        int maxIndex = i; //記錄當前節點及其子節點的最大值節點索引
        int left = 2 * i + 1; //左子節點索引
        int right = 2 * i + 2; //右子節點索引

        //對比節點及其左子節點
        if (left < size && arr[left] > arr[maxIndex]) {
            maxIndex = left;
        }

        //對比節點及其右子節點
        if (right < size && arr[right] > arr[maxIndex]) {
            maxIndex = right;
        }

        //不滿足最大堆性質,則進行下沉節點i,遞歸處理
        if (maxIndex != i) {
            int tmp = arr[i];
            arr[i] = arr[maxIndex];
            arr[maxIndex] = tmp;
            //因為交換了子節點的值,則以子節點為根節點的子堆特性可能發生變化,需要維護
            maxHeapify(arr, maxIndex, offSet);
        }
    }

    /**
     * 構建最大堆
     *
     * @param arr
     */
    public static void buildHeap(int[] arr) {
        for (int i = (arr.length - 1) / 2; i >= 0; i--) {
            maxHeapify(arr, i, 0);
        }
    }

    /**
     * 交換最大值
     *
     * @param arr 堆數組
     * @param maxIndex 最大值元素待交換位置
     */
    public static void swapMax(int[] arr, int maxIndex) {
        int tmp = arr[maxIndex];
        arr[maxIndex] = arr[0];
        arr[0] = tmp;
    }

    /**
     * 堆排序
     *
     * @param arr
     */
    public static void heapSort(int[] arr) {
        buildHeap(arr); //構建堆
        swapMax(arr, arr.length - 1); //交換最大值
        for (int i = 0; i < arr.length - 2 ; i++) {
            maxHeapify(arr, 0, i + 1); //根節點堆維護 offset 偏移元素個數
            swapMax(arr, arr.length - 1 - (i + 1)); //交換最大值
        }
    }

堆排序時間複雜度:O(nlgn)

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

新北清潔公司,居家、辦公、裝潢細清專業服務

※推薦評價好的iphone維修中心

查找算法系列文(一)一文入門二叉樹

微信公眾號:小超說

這是查找算法系列文章的第一篇,助你快速入門二叉樹

什麼是樹(Tree)?

我們首先來看一些圖片:

其中,第一、二、四個都是樹,第三個不是。樹的特點很明顯吧!

其中每個元素叫做“節點”;用來連接相鄰節點之間的關係,我們稱之為“父子關係”。例如在圖一中,A節點是B節點的父節點,B節點是A節點的子結點,同時,B節點和Q節點是同一個父節點A的子節點,所以它們之間互相成為兄弟節點。我們把沒有父節點的節點稱為根節點,也就是圖一中的A節點。我們把沒有子節點的節點稱為恭弘=叶 恭弘子節點,比如圖一中的D、E、F、G節點。這些概念都是顯而易見,但卻是最基本的東西。

二叉樹

二叉樹,自然就是每個節點最多有兩個分支,即兩個子節點的一種樹,兩個分支分別稱為左子樹右子樹。還是那上面那張圖舉例,圖一、圖二和圖四都是二叉樹,因為它們每個節點都最多含有兩個子節點。其中,圖一又稱為滿二叉樹,圖四又稱為完全二叉樹。而之所以出現完全二叉樹的概念,其實是基於二叉樹的物理存儲方式。

二叉樹的存儲方法

  • 基於鏈表的鏈式存儲法
  • 基於數組的順序存儲法

鏈式存儲法:

我們為每個節點創建一個Node對象:

class Node{
		int data;
		Node left,right;
}

每個節點都是一個Node對象,它包含我們所需要存儲的數據,指向左子節點的引用,直向右子節點的引用,就像鏈表一樣將整個樹串起來。如果該節點沒有左子節點,則Node.left==null或者Node.right==null.

順序存儲法

我們把根節點儲存在下標為i=1的位置,那麼左子節點儲存在2*i=2的位置,右子節點儲存在下標為2*i+1=2的位置。依此類推,完成樹的存儲。藉助下標運算,我們可以很輕鬆的從父節點跳轉到左子節點和右子節點或者從任意一個子節點找到它的父節點。如果X的位置為i,則它的兩個子節點的下標分別為2i2i+1,它的父節點的位置為i/2(這裏結果向下取整)。

具體如下圖所示:可以發現,只有完全二叉樹存儲的效率才最高,最省內存

二叉樹的遍歷

二叉樹的遍歷操作主要有三種

  • 前序遍歷
  • 中序遍歷
  • 後序遍歷

前序遍歷是指,對於樹中的任意節點來說,先打印這個節點,然後再打印它的左子樹,最後打印它的右子樹。

中序遍歷是指,對於樹中的任意節點來說,先打印它的左子樹,然後再打印它本身,最後打印它的右子樹。

後序遍歷是指,對於樹中的任意節點來說,先打印它的左子樹,然後再打印它的右子樹,最後打印這個節點本身。

注意,這其中有點遞歸的味道

還是以剛才的圖為例:

  • 前序遍歷:A->B->D->E->C->F
  • 中序遍歷:D->B->E->A->F->C
  • 後序遍歷:D->E->B->F->C->A

具體的代碼實現(寫出遞歸即可):

public void preOrder(Node root){
	if(root==null) return;
	System.out.println(root.data);//打印root節點的值
    preOrder(root.left);
    preOrder(root.right);
}

public void inOrder(Node root){
	if(root==null) return;
	inOrder(root.left);
	Systrm.out.println(root.data);
	inOrder(root.right);
}

public void inOrder(Node root){
	if(root==null) return;
	inOrder(root.left)
	inOrder(root.right);
	Systrm.out.println(root.data);
}

二叉樹遍歷的時間複雜度是O(n),這是因為每個節點最多會被訪問兩次,(遞歸時函數進棧和出棧),所以遍歷操作的訪問次數跟節點的個數 n 成正比,也就是說二叉樹遍歷的時間複雜度是 O(n)。

展望

經過上面的介紹,我們已經大致對二叉樹有了一個基本的認識,那麼,二叉樹存在的意義是什麼呢?我們可以基於這種數據結構設計出哪些高效的算法呢?下一次我們將介紹二叉查找樹(Binary Search Tree),我們將定義一種數據結構並維護它的性質。

題外話:對於算法初學者,推薦一本十分 nice 的書籍 《算法第四版》,裏面各種配圖十分詳細。如果你需要电子版文件,後台回復算法4即可獲得下載鏈接。後台回復 算法01 送你一份 算法與數據結構思維導圖。最後,希望我們一起進步,一起成長!

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※幫你省時又省力,新北清潔一流服務好口碑

※回頭車貨運收費標準