今天看了外排序,準備實現。

來源:互聯網
上載者:User

幾年前,面試的時候被問過,沒回答上來。昨天,看到又有人面試時被考倒了,所以從網上翻了資料。其實很簡單,真的很簡單啊。

第一步,按固定的塊讀取輸入資料,用內排方法(隨意自選)排好序,輸出到磁碟檔案F1, F2,...

第二步,對第一步的結果進行歸併,形成輸出結果F12, F34,F56.....

第三步,繼續歸併,形成磁碟檔案F1234, F5678.....

知道形成最後的結果檔案。

歸併演算法:

File.open('block1') do |f1|  File.open('block2') do |f2|    f1.each_line.zip(f2.each_line).each do |data1, data2|       if data1 <= data2          write(data1) to file       else         write(data2) to file       end    end  endend

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.