計科1111-1114班第三周講義、課外作業(到期日:2014年3月27日23點-周四晚,學委飛信通知同學)

來源:互聯網
上載者:User

    第三周,我們主要探討了 雜湊演算法 與 分治法。分治法是一個通用的演算法架構,很多我們日常生活中接觸到的演算法都可以歸類到分治法中。

本周重點

1. 雜湊演算法及其應用——MD5。大家應該明白雜湊演算法的主要三個作用,分別為:資料完整性校正、資料保密、快速尋找。遇到相應的問題,能夠想到使用雜湊演算法進行求解。

2. 分治法的步驟與要點——大問題分解成小問題、解決小問題、合并小問題的解得到原問題的解,即:分、治、合。並能夠用 合并演算法、大整數乘法、大矩陣相乘來理解分治法的要點。

3. 能夠編寫如下三個問題的程式——二分尋找、歸併排序、快速排序。

作業要求

1. 請各班學委飛信通知同學完成作業。 

2. 作業計入平時成績,計分依據為大家的完成程度——態度(做 / 未做)。老師會根據大家作業的品質選擇若干學生進行評論,以及提供個人化教學的依據。請大家依據自身能力,儘可能提供高水平的作業,為提高自身能力全力以赴。3. 本次作業,老師將會抽查本班 學號位於最後5個的同學,請大家相互轉告。從第四周開始,將會引入“同伴作業互評”機制,請大家做好準備。即:每個同學閱讀本班其他5個同學的作業,並給出並匯總評價,進而達到相互學習的效果。作業內容    請大家至少完成其中的一題,鼓勵完成兩道題。把程式源碼 與 運行結果 發博文到CSDN部落格中。1. 排序。對檔案 largeW.txt(下載連結)中的資料,編程實現冒泡排序(方法名:bubbleSort) 與 歸併排序(mergeSort),把排序後的結果分別儲存到largeW_bubble.txt 和 largeW_merge.txt 中,把兩種排序結果的已耗用時間輸出到螢幕中(發博文時把已耗用時間的作為運行結果提交)。      博文標題第三周作業——冒泡排序和歸併排序2. 尋找。Bentley在他的著作《Writing Correct Programs》中寫道,90%的電腦專家不能在2小時內寫出完全正確的二分搜尋演算法。    二分尋找方法原型:int BSearch(int array[], int low, int high, int target ), array——含有若干整數的數組,low 與 high——尋找的起始、結束下標,target——待尋找的元素。    順序尋找:int SSearch(int array[], int low, int high, int target ),其中S——Sequence(順序)    數組array中資料來自於第1題中的排序結果檔案largeW_bubble.txt,待尋找資料來自於檔案tinyW.txt(下載連結)。請在控制台輸出不在largeW_bubble.txt的資料。    博文標題第三周作業——順序尋找和二分尋找
    測試資料來自於《演算法》網站,敬表謝意。補充內容1. 怎樣花兩年時間去面試一個人,對大家定位自己有一定的參考價值。2. 怎樣花兩月時間去應聘互連網公司,找工作,現在開始準備,可以做什麼。3. 前程無憂網站,搜尋“演算法”及“演算法工程師”的崗位要求有哪些?命令列參數、文字檔讀寫範例程式碼(Java)
import java.io.File;import java.io.FileNotFoundException;import java.io.PrintWriter;import java.util.Scanner;public class ReadData {public static void main(String[] args) throws FileNotFoundException{//從命令列讀取兩個輸入參數,分別為待處理的文字檔,以及儲存處理結果的文字檔if(args.length<2){System.out.println("無輸入資料!");System.out.println("程式使用方法(樣本):ReadData tinyW.txt tinyW_bubble.txt");return;}//從文字檔中讀取,並對資料進行處理後(×2),儲存到相應的資料檔案中String fileInput = args[0];Scanner sc = new Scanner(new File(fileInput));String fileOutput = args[1];PrintWriter pw = new PrintWriter(new File(fileOutput));int data = 0;int num = 0;while(sc.hasNextInt()){data = sc.nextInt();num = num+1;//System.out.println(data);pw.printf("%d: %d\n", num,2*data);}pw.close();sc.close();System.out.println("運行結束,一共有"+num+"個資料。");}}




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.