比如要將陣列 int a=;
的元素迴圈右移動4
那麼 結果為 ;
顯然最高效的方法是
int temp=a[1];a[1]=a[9];a[9]=a[5];a[5]=temp;
temp=a[2];a[2]=a[10];a[10]=a[6];a[6]=temp;
temp=a[3];a[3]=a[11];a[11]=a[7];a[7]=temp;
temp=a[4];a[4]=a[12];a[12]=a[8];a[8]=temp;
資料總拷貝次數(3+1)*4;
又 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12
-> 5, 6, 7, 8, 9,10,11,12, 1, 2, 3, 4,
n=12;move_right=8;
同理 temp=a[1];a[1]=a[5];a[5]=[9];a[9]=temp;
...分析不難得出將乙個陣列右移動m(m%=n)最少資料拷貝次數為(n/maxcommondivisor(n,m)+1)*maxcommondivisor(n,m);
即n+maxcommondivisor(n,m);
maxcommondivisor(n,m)為n,m的最大公倍數、
void
move_array(
int
data,
int
n,
int
m)
data[last] = t;
}
}
JS打亂陣列最高效的方法
var arr for var i 0 i 100 i arr.sort function var str arr.join alert str arr.sort function sort 是對陣列進行排序 他的是這樣工作的。每次從陣列裡面挑選兩個數 進行運算。如果傳入的引數是0 兩個數字置不變。...
JS打亂陣列最高效的方法
這個方法是我見過對高效的。vararr for vari 0 i 100 i arr.sort function var str arr.join alert str 解釋 var arr 新建乙個陣列 這是大家推薦的方式。而不推薦使用 var arr new array 這句不用解釋了。for v...
企業如何走好出海之路 木瓜移動帶來最高效的出海方案
近幾年,出海 似乎成為出現在中國企業口中次數最多的詞語程式設計客棧之一,目前到海外去尋找新的使用者增長點是很多企業首選的營銷方式。出海企業要去國外尋找商業機會,都會首先選擇海外使用者出現最多的平台上,出海企業只需在平台上尋找潛在使用者就好,過程非常高效。但在平台的茫茫人海中,國內出海企業怎麼找到精準...