最高效的陣列移動

2021-07-04 23:33:32 字數 925 閱讀 6219

比如要將陣列      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的最大公倍數、

voidmove_array(intdata,intn,intm)

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...

企業如何走好出海之路 木瓜移動帶來最高效的出海方案

近幾年,出海 似乎成為出現在中國企業口中次數最多的詞語程式設計客棧之一,目前到海外去尋找新的使用者增長點是很多企業首選的營銷方式。出海企業要去國外尋找商業機會,都會首先選擇海外使用者出現最多的平台上,出海企業只需在平台上尋找潛在使用者就好,過程非常高效。但在平台的茫茫人海中,國內出海企業怎麼找到精準...