2016-12-06 106 views
2

如何使用循環打印下列值。 基本上我正在採取數組的大小,並添加第一項入數組的中間,如果數組的大小奇數。如果它是第一次進入下面的數組的一半。就像下面我加15th的位置。使用循環打印值

然後第二次進入第一位置。第一個條目的下方第三個條目。第四個條目到第二個條目。第五項進入到第三項並且以此類推。

在簡單的第一個入口到中心,第二個入口到頂部,第三個入口到中心以下,以此類推。

2,4,6,8,1,3,5,7

+3

你在用什麼語言?你寫了一些你可以分享的片段嗎? – hypnos

+0

@hypnos我在寫算法,語言無所謂。 – Infinity

回答

4

僞的公約從作者到筆者變化。這不能在原地完成。因此,您需要另一個陣列來複制結果。

left = 0, right = res.length/2 
for i = 0 to res.length - 1: 
    if i is even: 
     res[right] = arr[i] 
     right++ 
    else 
     res[left] = arr[i] 
     left++ 

改編是你原來的陣列和RES是要填充空數組。

+0

假設'res.length = 8'然後'right = 7'在循環'i = 0'下,這意味着'我是偶數',那麼它設置res [7] = arr [0]'res [7] = 1'。 'arr'的第一個元素錯誤設置在'5th'位置 – Infinity

+0

我必須喝醉了。 'right = arr.length/2'。我有正確的Java代碼。這是僞代碼中的錯字 – rafid059

+0

但是在上面寫'right = res.length-1' – Infinity