1. 程式人生 > >【資料結構與演算法經典問題解析--java語言描述】_第20、21章_學習記錄

【資料結構與演算法經典問題解析--java語言描述】_第20、21章_學習記錄

【資料結構與演算法經典問題解析--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:將字串中的空格移到末尾。