两种巧妙的移位算法 丨 永不冷�龅娜�生



两种巧妙的移位算法 丨 永不冷�龅娜松�

看《编程珠玑》第二章,看到的。

对于移位算法,有数组a[7] : 1 , 2 , 3 , 4 , 5 , 6 , 7

要求向左旋转两位(向左循环移动2位)。显然结果是 3 4 5 6 7 1 2 .

 

通常的做法是开辟两个单元的空间来存储1 2  然后将后面的所有字符向左移动2位。最后将1 2 插入末尾即可。

这样做可以,加入移动i位必须得浪费i个空间,并且时间复杂度也不低。

《编程珠玑》告诉我们,通常降低空间复杂的同时还能降低时间复杂!因为空间的减少使用意味着更少的操作。一定存在一个简单的方法来解决问题。

 

所以,有这么两个巧妙的算法来解决这个问题:


Read full article from 两种巧妙的移位算法 丨 永不冷�龅娜松�


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts