Tôi đã mảng sau:Formula cần thiết: Sắp xếp mảng để array- "zig-zag"
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
tôi sử dụng nó cho một số công cụ trực quan như thế này:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Bây giờ tôi muốn sắp xếp mảng như thế này để có "zig-zag" khi hiển thị sau.
// rearrange the array according to this schema
1 3 6 10
2 5 9 13
4 8 12 15
7 11 14 16
// the original array should look like this:
a = [1,5,2,9,6,3,13,10,7,4,14,11,8,15,12,16]
// the second index to draw should be the first index in the second row,
// which is represent by 5 in the original 1D Array
Vâng, bây giờ tôi đang tìm kiếm một công thức thông minh để làm điều đó
ticker = 0;
rows = 4; // can be n
cols = 4; // can be n
originalArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16];
newArray = [];
while(ticker < originalArray.length)
{
//do the magic here
ticker++;
}
Bạn có chắc chắn các ví dụ của mình là chính xác không? Trong trường hợp thứ hai, mảng phẳng không khớp với biểu diễn 2D. –
Gợi ý là trong ví dụ của anh ta. Anh ta muốn sắp xếp các con số thành thứ gì đó giống như một hình thoi đứng với 1 ở trên cùng, sau đó nghiêng 45 ° sang trái. –
Tôi nhận ra zig-zag nhiều hơn sau đó, tôi đã được đưa vào bởi 'sort'-word. Đây thực sự là một hoán vị. – dirkgently