【資料結構與演算法經典問題解析--java語言描述】_第20、21章_學習記錄
阿新 • • 發佈:2018-12-02
【資料結構與演算法經典問題解析--java語言描述】_第20、21章_學習記錄
第20章:
第21章:
1.1 本章主要介紹的是對於面試和考試有用的話題
1.2 位運算的使用
1.2.1 按位與操作
按位與(And)操作測試兩個二進位制數,如果兩個數對應的位值均為1,則返回值中該位值為1;如果不同時為1,則返回0;
1.2.2 按位或操作
按位或(OR)操作測試兩個二進位制數,如果兩個數對應的位值至少有一個為1,則返回值中該位值為1;當且僅當它們同時為0時,返回0;
1.2.3 按位異或操作
按位異或操作測試兩個二進位制數,如果兩個數對應的位值不相同,則返回值中該位值為1;如果相同,則返回0;
1.2.4 按位左移操作
按位左移操作將運算元中的所有位向左移動,並用0填充空出的位。
1.2.5 按位右移操作
按位右移操作將運算元的所有位向右移動
1.2.6 按位補操作
按位補操作將一個二進位制運算元的位取反。
1.3 其他程式設計問題
問題1: 設計一個演算法,按照螺旋順序依次輸出矩陣中的元素。
問題2:基於反轉演算法的陣列旋轉問題。設計一個函式rotate(A[], d, n), 該函式將大小為n的陣列旋轉d 個元素。例如,陣列1, 2, 3, 4, 5, 6, 7 在經過2個元素的旋轉後變為3, 4, 5, 6, 7, 1, 2;
問題3:移動0到末尾。
問題4:將字串中的空格移到末尾。